scala - 转发集合的最佳实践

标签 scala collections scala-collections

我正在寻找创建转发集合的最佳实践,例如 Google 中的 Guava : 例如,Scala 中的 ForwardingList 如下所示:

   trait ForwardingList[T] 
   {
      def delegate: List
   }

但是我不清楚这个列表应该扩展哪些特征以及哪些方法必须被覆盖,因为有很多候选者

  • 列表[T]
  • ListLike[T, ForwardingList[T]]
  • ListLike[T, List[T]]

最佳答案

您可以采取简单的方法并扩展 SeqProxy :

import collection.SeqProxy

class ForwardingList[T](val self: List[T]) extends SeqProxy[T]

val xs = List(2,3,5,7,11,13)
val fs = new ForwardingList(xs)

println(fs.size)    // 6
println(fs(0))      // 2
fs foreach println  // 2,...,13

关于scala - 转发集合的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14257523/

相关文章:

java - 合并 map 并将值作为数组

java - 并发方法设计的数据类型

multithreading - Scala 和 Erlang 使用绿色线程吗?

scala - 为 API 包装器实例化 js.Object 的建议方法是什么

scala - akka-http web-app 无法在最小的 docker jre 11 上启动(scala12 akka-http 的哪些 java 模块)?

scala - 在到达第一个None时如何停止构建Option [Collection]?

Scala 可变集合,插入时排序

json - 创建没有组合器模式的递归 JSON 写入

javascript - 在帮助程序之外未定义的客户端上获取 meteor

scala - 将 Spark DataFrame 保存到具有 map<string,string> 列类型的 csv 文件