先来看一段Swift 代码
var abc = [String]() // var abc = Array<String>()
abc.append("222")
abc.append("222")
abc.append("222")
var def = abc
def.removeAll()
print(abc)
输出
["222", "222", "222"]
对OC熟悉的朋友应该知道,如果在OC里,使用数组实现类似的逻辑,输出应该 是 [],是一个 空数组,在Swift则不同
Array 在Swift 中是一个结构体,在Swift中结构体是值类型,他们的值是复制的而不是引用的。
下面的一行代码意思是复制了abc的值并把它赋值给def
var def = abc
所以 用惯了 OC数组等依赖引用关系的同学们,在使用Swift数组等其他变量时,要小心噢。我就被坑了呢,不说了,我去哭一会