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

Kotlin如何优雅实现列表元素依次传参的链式函数调用

实现方式

直接用Kotlin标准库内置的reduce扩展函数即可,不需要额外封装工具方法,逻辑完全匹配你要的链式调用效果。

代码示例

val list = listOf(1,5,3,4)
// 替换成你自己的foo函数逻辑即可,示例用简单加法做演示
fun Int.foo(next: Int): Int = this + next

val result = list.reduce { accumulator, nextElement ->
    accumulator.foo(nextElement)
}

上述代码的执行效果和你手写1.foo(5).foo(3).foo(4)完全一致。

逻辑说明

reduce的遍历规则刚好适配这个场景:

  • 第一步取列表首元素作为初始累积值,对应你示例里的起始值1
  • 每一轮遍历拿上一轮的计算结果作为接收者,传入当前遍历到的下一个元素调用foo,把返回值更新为新的累积值
  • 遍历到列表最后一个元素执行完后,直接返回最终累积值,没有额外开销

如果你的列表有可能为空,换成空安全的reduceOrNull即可,空列表场景会返回null,不会抛出运行时异常:

val safeResult = list.reduceOrNull { acc, i -> acc.foo(i) }

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 14:03:18