当在Kotlin中将其定义为val类型时,如何更改可变列表/地图/数组的值

问题描述 投票:0回答:1

我是Kotlin的新手,我已经读了很多关于val是只读的而var是可变的。我知道了。但是,令人困惑的是,当您创建可变的lsit / map / array并将其分配为val时,如何允许它可变?这不会更改val属性/变量/对象的只读方面吗?

kotlin mutable
1个回答
1
投票
class MyObject {
    val a = mutableListOf<String>()
}

表示a的字段是最终字段,并且a没有设置器。

您因此无法这样做

myObject.a = anotherList

它没有说列表本身的可变性。由于列表是可变的,因此可以执行

myObject.a.add("foo")
© www.soinside.com 2019 - 2024. All rights reserved.