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

Kotlin中调用removeAt方法删除列表元素报错:Unresolved Reference: removeAt

解决Kotlin中removeAt未找到的报错问题

嘿,我来帮你搞定这个问题!你遇到的unresolved reference: removeAt报错,核心原因很清晰:

问题根源

你用listOf()创建的sachmelebi是不可变列表(Immutable List),Kotlin的不可变列表设计初衷就是不允许修改,所以根本没有removeAt()这类修改元素的方法——编译器找不到这个方法,自然抛出报错。

另外还有个小细节:你把println(sachmelebi.removeAt(asd))写在了main()函数外面,这在Kotlin里是不合法的,所有可执行代码必须放在函数或类的作用域内。

解决方案

只需要做两个小改动就能解决:

  • 用mutableListOf()代替listOf(),创建可变列表(Mutable List),这样就能使用removeAt()等修改方法了
  • 把所有操作代码移到main()函数内部

修正后的完整代码

fun main() {
    data class SachmelebiClass(
        val name: String,
        val link: String
    )
    // 改用mutableListOf创建支持修改的可变列表
    val sachmelebi = mutableListOf(
        SachmelebiClass(
            "ხინკალი",
            "https://www.google.com/search?q=%E1%83%AE%E1%83%98%E1%83%9C%E1%83%99%E1%83%90%E1%83%9A%E1%83%98&oq=%E1%83%AE%E1%83%98%E1%83%9C%E1%83%99%E1%83%90%E1%83%9A%E1%83%98&aqs=chrome..69i57j46j0l6.1143j0j9&sourceid=chrome&ie=UTF-8"
        ),
        SachmelebiClass("aa", "aaa"),
        SachmelebiClass("bb", "bbb")
    )
    val randomItem = sachmelebi.random()
    println("选中的元素:$randomItem")
    val index = sachmelebi.indexOf(randomItem)
    // 删除指定索引的元素,并打印被删除的内容
    val removedItem = sachmelebi.removeAt(index)
    println("被删除的元素:$removedItem")
    // 打印修改后的列表,确认元素已删除
    println("修改后的列表:$sachmelebi")
}

关键知识点补充

  • 不可变列表:listOf()创建的列表仅支持读取操作,适合内容固定的场景
  • 可变列表:mutableListOf()创建的列表支持add()、removeAt()、set()等修改操作,适合需要动态调整内容的场景
  • removeAt(index: Int)方法会删除指定索引的元素,并返回被删除的元素,所以可以直接获取并打印这个返回值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 09:48:11