如何在 Scala 的 for 循环中跳过迭代?
How to skip an iteration in a for-loop in Scala?
例如在 C 中你可以这样写
for (int i = 0; i < 10 ; i++) {
if (i == 2) i += 1
// do stuff
}
由于 Scala 使用范围,我们将如何修改迭代器?
你会有多种解决方案,但基本上在某处使用 .filter() like 子句就可以了。
例如(0 to 10).filterNot(_ == 3).foreach(doStuff())
你可以使用守卫:
for (i <- 0 to 10; if i != 2) println(i)
这将打印从 0 到 10 的数字,不包括 2。
您可以在 Scastie here 上查看此代码的实际运行情况。
例如在 C 中你可以这样写
for (int i = 0; i < 10 ; i++) {
if (i == 2) i += 1
// do stuff
}
由于 Scala 使用范围,我们将如何修改迭代器?
你会有多种解决方案,但基本上在某处使用 .filter() like 子句就可以了。
例如(0 to 10).filterNot(_ == 3).foreach(doStuff())
你可以使用守卫:
for (i <- 0 to 10; if i != 2) println(i)
这将打印从 0 到 10 的数字,不包括 2。
您可以在 Scastie here 上查看此代码的实际运行情况。