小编Lud*_*tey的帖子

如何从实例传递隐式参数?

我正在尝试定义一个类,该类将包含一个 Set 字段,并且希望能够直接从容器类中操作这个集合:

case class MyClass(prop: String) extends TraversableLike[Int,MyClass] {
   private def mySet: Set[Int]() = Set()

  override def foreach[U](f: Int => U) = data.foreach[U](f)

  override def newBuilder: Builder[Int, MyClass] =
    new ArrayBuffer[Int] mapResult (a => MyClass(prop, a.toSet))

  implicit def canBuildFrom: CanBuildFrom[MyClass, Int, MyClass] =
    new CanBuildFrom[MyClass, Int, MyClass] {
      def apply(): Builder[Int, MyClass] = newBuilder
      def apply(from: MyClass): Builder[Int, MyClass] = newBuilder
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望能够做到

var obj = MyClass("hello")
obj += 1
obj = obj map (_+1)
Run Code Online (Sandbox Code Playgroud)

第一条指令 (obj+= 1) …

scala scala-collections

1
推荐指数
1
解决办法
286
查看次数

标签 统计

scala ×1

scala-collections ×1