Реверсированные диапазоны поддерживаются с помощью унарного оператора минус -, как в -(1..100).
Чтобы вызвать метод в этом диапазоне, вам необходимо окружить его круглыми скобками, как в (-(1..100)).foreach { println(it) }.
Ответ 3
Как указано другими, правильный ответ
for (n in 100 downTo 1) {
println(n)
}
Но почему команда Котлина выбрала 100 downTo 1 vs 100..1?
Я думаю, что синтаксис 100..1 был бы плохим, если мы попытаемся использовать переменные вместо литералов.
Если мы набрали
for (n in b..a)
тогда было бы непонятно, какой цикл мы хотели использовать.
Мы могли рассчитывать на обратный отсчет, но если b окажется меньше, чем a, то наша программа будет на самом деле рассчитывать вверх! Это было бы источником ошибок.
Ответ 4
Если вы посмотрите на точную страницу, с которой вы связались, есть предложение для функции reversed, которая позволит вам сделать for (n in (1..100).reversed()), но пока не реализована. Оператор .. всегда рассчитывает.