【发布时间】:2021-10-07 12:41:26
【问题描述】:
例如在 C 中你可以编写
for (int i = 0; i < 10 ; i++) {
if (i == 2) i += 1
// do stuff
}
由于 Scala 使用范围,我们将如何修改迭代器?
【问题讨论】:
例如在 C 中你可以编写
for (int i = 0; i < 10 ; i++) {
if (i == 2) i += 1
// do stuff
}
由于 Scala 使用范围,我们将如何修改迭代器?
【问题讨论】:
你可以使用警卫:
for (i <- 0 to 10; if i != 2) println(i)
这将打印从 0 到 10 的数字,不包括 2。
您可以在 Scastie 上通过here 看到此代码的运行情况。
【讨论】:
你会有多种解决方案,但基本上应该在某处使用 .filter() 之类的子句。
例如(0 to 10).filterNot(_ == 3).foreach(doStuff())
【讨论】: