繁体   English   中英

如何使用循环来迭代scala集合?

[英]How can I iterate a scala collection using a loop?

我知道我可以使用x.foreach {...}语法,但是我想显式地使用循环。 我该如何在Scala中做到这一点? 我尝试使用以下代码,但它抱怨hasNextnext不是Iterable [T]的成员。

while (it.hasNext)
  println("\t" + it.next.toString()) 

Iterable没有nexthasNextIterator有。

因此,您的代码需要更改为以下内容:

val i = it.iterator
while (i.hasNext) println("\t" + i.next.toString())

但是请注意,这根本不是惯用的Scala。

您可以使用println(it.mkString("\\t","\\t",""))来实现相同的println(it.mkString("\\t","\\t",""))

采用

val iter = it.iterator
while (iter.hasNext) {
  println("\t" + iter.next.toString())
}

还考虑map

it.iterator.map(i => "\t" + i.toString())

以及理解力

for (i <- it.iterator) yield "\t" + i.toString()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM