Почему функция onEach не определена для массивов Kotlin? - PullRequest
0 голосов
/ 18 ноября 2018

API Collection содержит функцию onEach (https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/on-each.html), которая ведет себя как нетерминальный брат forEach.

Почему onEach не определено для Array s?

Редактировать : см. https://youtrack.jetbrains.com/issue/KT-28290

1 Ответ

0 голосов
/ 18 ноября 2018

«Почему», вероятно, здесь не то, на что нужно отвечать, это может быть по многим причинам, включая недосмотр, что-то, что просто еще не было сделано, по какой-то действительно веской причине, что это плохая идея, или другое. Вы можете отправить сообщение об ошибке / запрос в https://youtrack.jetbrains.com/issues/KT (или посмотреть, существует ли уже).

А пока вы легко можете иметь свое собственное:

inline fun <T> Array<T>.onEach(action: (T) -> Unit): Array<T> {
    return apply { for (element in this) action(element) }
}

inline fun IntArray.onEach(action: (Int) -> Unit): IntArray {
    return apply { for (element in this) action(element) }
}

// and a version for each primitive array type would need to be created...
...