【发布时间】:2020-02-26 22:00:20
【问题描述】:
我正在尝试在 Scala 中对 HashMap 执行 for 循环,但我还需要计算我的迭代次数,例如各种索引。这是我想要的功能:
val map = HashMap()
val i = 0;
for ((k, v) <- map) {
// do something
i += 1
}
但我希望它看起来像这样,在 for 循环语法中更新 i。但是,这似乎是一个嵌套循环,而不是一个并行迭代器。
for ((k, v) <- map; i <- 0 until map.size) {
// do something
}
【问题讨论】:
-
你可以
for (((k, v), i) <- map.zipWithIndex) { -
我认为值得将此作为答案。 ;)
-
我会避免在 Scala 中使用 for 循环。它们不是很实用,Scala 为大多数集合提供了
map、flatMap和foreach方法,因此您不需要编写for 循环的样板。编写collection.foreach(println)比执行相同操作的 for 循环要容易得多。 -
@csjacobs24Scala 没有 for 循环!尽管 for 理解表面上看起来很相似,但它们都变成了
map、flatMap和filter。
标签: scala for-loop foreach syntax iteration