为什么这样的代码只出现在一次迭代中?为什么在迭代结束前赋值后“b”与“a”同时变化?
我做了一个类似的代码,其中 (a) 和 (b) 是整数,然后 (b) 直到下一次迭代才会改变。为什么它与 Map 的行为不同?
var a = mutableMapOf("z" to 1)
do {
val b = a
a["x"] = 2
// why here b == a in the first iteration?
} while (a != b)
为什么这样的代码只出现在一次迭代中?为什么在迭代结束前赋值后“b”与“a”同时变化?
我做了一个类似的代码,其中 (a) 和 (b) 是整数,然后 (b) 直到下一次迭代才会改变。为什么它与 Map 的行为不同?
var a = mutableMapOf("z" to 1)
do {
val b = a
a["x"] = 2
// why here b == a in the first iteration?
} while (a != b)