Mic*_*tte 1 generics collections iterator scala
我需要一个函数,它将接收一个数组,一个Map,一个List [几乎任何带有toIterator方法的容器],迭代它,并打印它的元素.
我试过这个:
def method[CollectionT <: TraversableLike[Any, Any]](collection: CollectionT, numElements: Int) {
val iterator = collection.toIterator
for(i <- 0 until numElements) {
if(iterator.hasNext) {
println(iterator.next())
}
}
}
Run Code Online (Sandbox Code Playgroud)
^但它不适用于Array [T]
如何在Scala中创建一个遗传函数,它将接受具有" toIterator: Iterator[A]"方法的类的任何实例?
您可以在此处使用的一般类型是GenTraversable:
scala> def printAll(coll: collection.GenTraversable[_]) = coll.foreach(println)
defined function printAll
scala> printAll("aaa")
a
a
a
scala> printAll(Array(1,2,3))
1
2
3
scala> printAll(Seq(4,5,6))
4
5
6
Run Code Online (Sandbox Code Playgroud)
您也不需要迭代器.您可以更轻松地致电foreach或使用for理解.