You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin是否存在遍历集合元素后返回原集合的类forEach内置方法

回答

Kotlin标准库已经提供了完全匹配你需求的内置扩展方法:onEach。

它的行为和你自行实现的逻辑完全一致:

  • 遍历接收者集合内的每一个元素,执行传入的操作逻辑
  • 操作执行完成后返回原集合本身,不会生成新集合
  • 相比你自定义实现返回Iterable<T>的设计,标准库的onEach会保留原集合的具体类型,不会在链式调用中丢失类型信息,比如在MutableList上调用onEach,返回值依然是MutableList类型,使用更灵活。

和返回Unit、属于终端操作的forEach不同,onEach是专门为链式调用设计的中间操作,非常适合在流式处理集合的过程中插入副作用逻辑,比如调试打印元素值、触发和元素关联的次要业务逻辑等。

简单使用示例:

fun main() {
    val numberList = mutableListOf(1, 2, 3, 4)
    val result = numberList
        .onEach { println("当前遍历到元素:$it") } // 遍历打印,不打断后续链式处理
        .filter { it % 2 == 0 }
        .map { it * 10 }
    println(result) // 输出 [20, 40]
}

补充说明:onEach的适配范围不止通用Iterable类型,标准库同时为Sequence、各类对象数组、原生类型数组(IntArray/LongArray等)、Map都提供了对应的扩展实现,所有常用容器类型都可以直接使用这个方法。需要注意的是,在Sequence上调用onEach时,操作是惰性的,只有当序列被终端操作触发求值时,传入的逻辑才会真正执行。


内容的提问来源于stack exchange,提问作者Anthone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 17:18:22