我需要一个函数,它将接收一个数组,一个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())
}
}
}
^但它不适用于Array [T]
如何在Scala中创建一个遗传函数,它将接受具有&#34; toIterator: Iterator[A]
&#34;的类的任何实例。方法
答案 0 :(得分:5)
您可以在此处使用的常规类型是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
您也不需要迭代器。您可以更轻松地致电foreach
或使用for
理解。