Итак, во время прохождения прохождения «Scala для нетерпеливого» я оказался вопросом: можете ли вы использовать Scala для цикла без последовательности?
Например, есть упражнение в книге, которая просит вас построить счетчик счетчика, который не может быть увеличен мимо Intetger.max_value. Чтобы проверить мое решение, я написал следующий код:
var c = new Counter
for( i <- 0 to Integer.MAX_VALUE ) c.increment()
Это бросает ошибку: последовательности не могут содержать более, чем элементы Int.maxValue. Мне кажется, что означает, что Scala сначала выделяет и заполняет объект последовательности, со значениями 0 через integer.maxValue, а затем выполнение контура FOREACH на этом объекте последовательности.
Я понимаю, что могу сделать это вместо этого:
var c = new Counter
while(c.value < Integer.MAX_VALUE ) c.increment()
, но есть ли способ сделать традиционный C-стиль для петли с оператором для оператора?