Tag: 副本

Kotlin数据类拷贝方法不是深拷贝所有成员

有人可以解释Kotlin数据类的copy方法是如何工作的吗? 对于一些成员来说,(深)副本似乎并没有真正创建,而且引用仍然是原来的。 fun test() { val bar = Bar(0) val foo = Foo(5, bar, mutableListOf(1, 2, 3)) println(“foo : $foo”) val barCopy = bar.copy() val fooCopy = foo.copy() foo.a = 10 bar.x = 2 foo.list.add(4) println(“foo : $foo”) println(“fooCopy: $fooCopy”) println(“barCopy: $barCopy”) } data class Foo(var a: Int, val bar: Bar, val list: MutableList = […]