例子如下:
var a = [1, 2]
var b = a
a[0] = 0
println("a = \(a), b = \(b)")
a.append(3) # or a+=3
println("a = \(a), b = \(b)")
输出:
a = [0, 2], b = [0, 2] #改了下a,还是同一对象
a = [0, 2, 3], b = [0, 2] #呀,分道扬镳了= =!
===================================
ruby之类
a = [1, 2]
b = a
a[0] = 0
print a, b, "\n"
a.push(3)
print a, b, "\n"
输出:
[0, 2][0, 2]
[0, 2, 3][0, 2, 3]
insert,remove也类似,应该这里是建立了一个新对象。和ruby,python,js的直觉不一样啊 = =
var a = [1, 2]
var b = a
a[0] = 0
println("a = \(a), b = \(b)")
a.append(3) # or a+=3
println("a = \(a), b = \(b)")
输出:
a = [0, 2], b = [0, 2] #改了下a,还是同一对象
a = [0, 2, 3], b = [0, 2] #呀,分道扬镳了= =!
===================================
ruby之类
a = [1, 2]
b = a
a[0] = 0
print a, b, "\n"
a.push(3)
print a, b, "\n"
输出:
[0, 2][0, 2]
[0, 2, 3][0, 2, 3]
insert,remove也类似,应该这里是建立了一个新对象。和ruby,python,js的直觉不一样啊 = =