当可变 list/map/array 在 Kotlin 中定义为 val 类型时,如何更改它的值

How can you change the value of a mutable list/map/array when its defined as a val type in Kotlin

我是 Kotlin 的新手,我已经阅读了很多关于 val 是只读的而 var 是可变的。没关系,我明白了。但令人困惑的是,当您创建一个可变 lsit/map/array 并将其分配为 val 时,它是如何允许可变的?这不会改变 val properties/variables/objects 的只读方面吗?

class MyObject {
    val a = mutableListOf<String>()
}

表示a的字段是final的,a没有setter。

你不能这样做

myObject.a = anotherList

它没有说明列表本身的可变性。由于列表是可变的,你可以做

myObject.a.add("foo")