にいくつかのメソッドを追加しようとしています。implicit class
でpimpingしています。CanBuildFromでTraversableの暗黙のクラスを定義する方法は?
しかし、私はCanBuildFrom
形質で失われています。次のことを考えてみましょう:
implicit class TraversableExt[+A, +Repr <: Traversable[A]](traversable: Repr) {
def debug[That](name: String)(implicit bf: CanBuildFrom[Repr, A, That]): That =
traversable.map{ a => println(name + ": " + a); a }(bf)
}
これはエラーで失敗します。
Error:(21, 59) type mismatch;
found : scala.collection.generic.CanBuildFrom[Repr,A,That]
required: scala.collection.generic.CanBuildFrom[Traversable[A],A,That]
traversable.map{ a => println(name + ": " + a); a }(bf) ^
私はCanBuildFrom[-Repr, -Elem, +To]
でRepr
が反変であることから推測しているので、Traversable[A]
によって上限れる私のRepr
が動作しない場合があります。
しかし全体的に、私はかなり失われています。誰も助けることができますか?
うわー。ありがとうございました。 –