首页 > 解决方案 > 为什么没有为 Kotlin 数组定义 onEach 函数?

问题描述

CollectionAPI 包含onEach函数(https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/on-each.html ),其行为类似于forEach.

为什么没有onEachArrays 定义?

编辑:我猜系统工作正常,该功能从 1.4 开始可用。请参阅https://youtrack.jetbrains.com/issue/KT-28290

标签: collectionskotlinapi-design

解决方案


“为什么”可能不是这里要回答的问题,它可能有很多原因,包括疏忽、尚未完成的事情、一些非常好的理由认为这是一个坏主意,或其他。您可以在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...

推荐阅读