如何在 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 上查看此代码的实际运行情况。