如何在Scala集合上添加foreachWithIndex
方法?用方法豐富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)
我如何讓它度過,即使沒有一個轉換方法的明確的應用嗎?謝謝。
其實它是由一組額外的方法只有一個方法我我正在努力實施。其他一些方法需要構建相同類型的新集合。 – missingfaktor