swift数组之数组和可变

案例一:数组进行赋值的时候,内容会被复制。
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
)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容