为了账号安全,请及时绑定邮箱和手机立即绑定

深拷贝和浅拷贝之间有什么区别?

深拷贝和浅拷贝之间有什么区别?

深拷贝和浅拷贝之间有什么区别?深拷贝和浅拷贝之间有什么区别?
查看完整描述

4 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

浅拷贝尽可能少复制。集合的浅表副本是集合结构的副本,而不是元素。使用浅拷贝,两个集合现在共享各个元素。

深拷贝复制一切。集合的深层副本是两个集合,原始集合中的所有元素都是重复的。


查看完整回答
反对 回复 2019-05-25
?
森栏

TA贡献1810条经验 获得超5个赞

广度与深度; 根据您的对象作为根节点的引用树来思考。

浅:

https://img1.sycdn.imooc.com//5ce8f7fc00016ba301200090.jpghttps://img1.sycdn.imooc.com//5ce8f7fd00019f0c01200090.jpghttps://img1.sycdn.imooc.com//5ce8f7fe0001427301200090.jpg

变量A和B指的是不同的存储区域,当B被分配给A时,两个变量指的是相同的存储区域。以后对其中一个内容的修改会立即反映在其他内容中,因为它们共享内容。

深:

https://img1.sycdn.imooc.com//5ce8f8010001b61e01200090.jpghttps://img1.sycdn.imooc.com//5ce8f80c000177c101200090.jpghttps://img1.sycdn.imooc.com//5ce8f80e00016ba301200090.jpg

变量A和B指的是不同的存储区,当B被分配给存储区中的值时,A指向的值被复制到B指向的存储区中。后来对其中任何内容的修改仍然是A或B的唯一内容; 内容不共享。


查看完整回答
反对 回复 2019-05-25
?
胡说叔叔

TA贡献1804条经验 获得超8个赞

特别是对于iOS开发人员:

如果B浅拷贝A,那么它就像原始数据B = [A assign];和对象它像B = [A retain];

B和A指向相同的内存位置

如果B深拷贝A,那么它像B = [A copy];

B和A指向不同的存储位置

B存储器地址与A相同

B与A的内容相同


查看完整回答
反对 回复 2019-05-25
  • 4 回答
  • 0 关注
  • 1186 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信