案例一:数组进行赋值的时候,内容会被复制。
var demoA = [1,2,3]
var demoB = demoA
demoB.append(4)
print(demoA)
print("====")
print(demoB)
输出结果:
[1, 2, 3]
====
[1, 2, 3, 4]
案例二:NSArray没有更改内容的方法,与OC中的Foundation框架一下必须使用NSMutableArray.。但是,就算你拥有的是一个不可变的 NSArry,但是它的引用特性并不能保证这个数组不会被改变:
1.赋值数组内容不会改变
let demoA = NSMutableArray(array: [1,2,3,4])
let demoB: NSArray = demoA
demoA.insert(5, at: 3)
print(demoA)
print("====")
print(demoB)
输出结果:
(
1,
2,
3,
5,
4
)
====
(
1,
2,
3,
5,
4
)
2.赋值数组内容会改变
let demoA = NSMutableArray(array: [1,2,3])
let demoB = demoA.copy() as! NSArray;
demoA.insert(4, at: 3)
print("demoA+\(demoA)")
print("=======")
print("demoB+\(demoB)")
输入结果:
demoA+(
1,
2,
3,
4
)
=======
demoB+(
1,
2,
3
)
网友评论