foreachWithIndex
メソッドをScalaコレクションに追加するにはどうすればよいですか?メソッドを使用してScalaコレクションを充実させる
これは私がこれまでに思い付くことができるものである:
implicit def iforeach[A, CC <: TraversableLike[A, CC]](coll: CC) = new {
def foreachWithIndex[B](f: (A, Int) => B): Unit = {
var i = 0
for (c <- coll) {
f(c, i)
i += 1
}
}
}
は、これは動作しません:
Vector(9, 11, 34).foreachWithIndex { (el, i) =>
println(el, i)
}
は、次のエラーを発生させます:
error: value foreachWithIndex is not a member of scala.collection.immutable.Vector[Int]
Vector(9, 11, 34).foreachWithIndex { (el, i) =>
しかしコード変換メソッドを明示的に適用すると機能します:
iforeach[Int, Vector[Int]](Vector(9, 11, 34)).foreachWithIndex { (el, i) =>
println(el, i)
}
出力:
(9,0)
(11,1)
(34,2)
は、どのように私は、それが変換方法を明示的に適用せずに動作するようにするのですか?ありがとう。
ような何かを行う可能性があります実際にはただ一つの方法だ余分なメソッドのセットからI実装しようとしています。これらの他のメソッドの中には、同じ型の新しいコレクションを作成する必要があるものがあります。 – missingfaktor