Инвертированная функция «повтор» в Kotlin - PullRequest
0 голосов
/ 16 апреля 2020

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

repeat(3) {
    println(it)
}

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

1 Ответ

0 голосов
/ 17 апреля 2020

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

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

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

inline fun repeatReverse(times: Int, action: (Int) -> Unit)
    = (times downTo 1).forEach(action)
...