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

如何编写Kotlin纯函数修改List元素且不改变原始列表

Kotlin 泛型纯函数实现

完整代码实现

fun <T> change(list: List<T>, index: Int, value: T): List<T> {
    // 下标合法性校验,可根据需求选择是否保留
    require(index in list.indices) { "索引 $index 超出列表合法范围 0..${list.lastIndex}" }
    return list.take(index) + value + list.drop(index + 1)
}

实现说明

  • list.take(index) 对应参考TS实现中的array.slice(0, index),截取列表从开头到目标索引前的所有元素
  • 中间拼接要替换的新值value
  • list.drop(index + 1) 对应参考TS实现中的array.slice(index + 1),截取列表从目标索引后一位到末尾的所有元素
  • Kotlin中对只读List使用+运算符会自动生成全新的只读List,全程不会修改传入的原始列表,符合纯函数要求

调用示例

fun main() {
    val originList = listOf("苹果", "香蕉", "橙子", "葡萄")
    val newList = change(originList, 2, "西瓜")
    println(originList) // 输出 [苹果, 香蕉, 橙子, 葡萄],原始列表完全未被修改
    println(newList) // 输出 [苹果, 香蕉, 西瓜, 葡萄],返回修改后的新列表
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 06:57:03