Существует функция стандартной библиотеки Kotlin repeat(), которая позволяет выполнять заданную функцию определенное количество раз и получать индекс текущего повторения. Например:

repeat(3) {
    println(it)
}

Есть ли функция, которая будет делать то же самое в обратном порядке? В каком смысле индексы снижаются?

0
Michal Karbownik 16 Апр 2020 в 15:31

1 ответ

Лучший ответ

Нет, версии stdlib repeat() функция обратного отсчета.

Вероятно, это потому, что так легко использовать другие структуры, такие как forEach(). (И если вы достаточно заботитесь о переданном значении, чтобы желать определенного порядка, то это, вероятно, было бы хорошей идеей, поскольку оно сделало бы его явным.)

Но если вы действительно не хотите использовать это напрямую, очень легко написать свое собственное:

inline fun repeatReverse(times: Int, action: (Int) -> Unit)
    = (times downTo 1).forEach(action)
0
gidds 16 Апр 2020 в 22:47