众所周知,在 Kotlin 中可以创建不同类型的可变列表的可变列表,例如:
val list = mutableListOf(
MutableList<Int>(3) { 0 },
MutableList<String>(2) { "aaa" }
)
并且可以(如预期)更改主列表,例如:
list.add(MutableList<Double>(4) { 0.0 }
在这个操作之后,结果println(list)
如下:
[[0, 0, 0], [aaa, aaa], [0.0, 0.0, 0.0, 0.0]]
但是更改子列表是不可能的,
例如操作:
list[0][1] = 2
list[1].add("bbb")
产生错误消息:
整数文字不符合预期的类型 Nothing
和
Type mismatch: inferred type is String but Nothing was expected
分别...
我的问题是:
为什么这些嵌套子列表 - 声明为可变 - 表现得像不可变?
有没有办法改变这些嵌套的子列表???
顺便说一句...
我已经检查过,声明为可变的嵌套子列表在它们都是相同类型时表现得非常正常。
在这种情况下,可以 - 正如预期的那样 - 更改那些嵌套的子列表......