#scala #loops #iteration
Вопрос:
Например, в C вы могли бы написать
for (int i = 0; i < 10 ; i ) {
if (i == 2) i = 1
// do stuff
}
Поскольку Scala использует диапазоны, как бы мы изменили итератор?
Ответ №1:
Вы можете использовать охрану:
for (i <- 0 to 10; if i != 2) println(i)
Это приведет к печати чисел от 0 до 10, исключая 2.
Вы можете увидеть этот код в действии и поиграть с ним здесь, на Scastie.
Ответ №2:
У вас будет несколько решений, но в основном это должно выполняться с помощью предложения .filter() like где-то.
Как (0 to 10).filterNot(_ == 3).foreach(doStuff())
, например
Комментарии:
1. Это работает! Спасибо!
2. Отлично 🙂 не стесняйтесь отмечать, что один из ответов, который вы сочли уместным, принят 🙂 (если оба были, вы можете выбрать наугад, все в порядке 🙂 )
3. Спасибо 🙂 Я также вернусь, когда смогу проголосовать, чтобы озвучить оба ответа