我知道我可以使用 x.foreach {...} 语法,但我想明确使用循环。我怎么能在Scala中做到这一点?我尝试使用以下代码,但它抱怨 hasNext 和 next 不是 Iterable [T] 的成员。
while (it.hasNext)
println("\t" + it.next.toString())
答案 0 :(得分:2)
Iterable
没有next
,hasNext
,Iterator
也没有。
所以你的代码需要改成这样的东西:
val i = it.iterator
while (i.hasNext) println("\t" + i.next.toString())
但请注意,这根本不是惯用的Scala。
您可以使用println(it.mkString("\t","\t",""))
答案 1 :(得分:2)
使用
val iter = it.iterator
while (iter.hasNext) {
println("\t" + iter.next.toString())
}
答案 2 :(得分:0)
还要考虑map
,
it.iterator.map(i => "\t" + i.toString())
以及理解,
for (i <- it.iterator) yield "\t" + i.toString()