当可变 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")
我是 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")