Swift数组拷贝默认采用深拷贝。使用=号赋值后,逻辑上产生了一个全新的数组,对新数组的增删改查不影响原数组:
var l1 = [1,2,3]
var l2 = l1
l2.append(4)
print(l1) // [1,2,3]
print(l2) // [1,2,3,4]
swift作为一个像Python、Java那样的高级的现代的语言,数组拷贝竟然默认不是采用Python、Java那样的浅拷贝,而是采用类似C++ Vector的深拷贝,不得不说有点坑了。看来苹果的特立独行值得你慢慢领教。