Недавно я начал кодировать множество своих соревнований по программированию в Scala. (Вы можете взглянуть на платформу здесь - http://codeforces.com/)Какую конструкцию для итерации лучше использовать в Scala?
Что касается природы проблем, мне часто приходится перебирать массив или входные данные. Например. есть заявление о проблеме, в котором говорилось, что на первой строке ввода я получу номер M, а затем мне нужно прочитать M строк или целые числа или что угодно. Я стараюсь использовать другой подход к этому:
for (i <- 0 until M)
----
(0 until M).foreach
----
var i = 0
while (i < M)
---
Или даже хвостовая рекурсия
@tailrec
def recursion(i: Int): Unit = {
if (i < M) {
doSomething()
recursion(i + 1)
}
}
Итак, мой вопрос, какая конструкция лучше использовать относительно Scala стиль и для лучшего производительности? (проблемы, которые я решаю, часто требуют быстрого выполнения, или они не будут переданы)
P.S. Я пишу для этого небольшой тест, и он выглядит так, а tailrec - лучший исполнитель, но не для большого дела. Вы можете посмотреть на него здесь - https://gist.github.com/MysterionRise/5daa63fdbd5d058528fe