unshare()和copy()都用于复制数组,但我看不出两者的区别。
发布于 2014-06-04 21:12:44
不分
正如在苹果文档 unshare上所说的,确保数组的副本是唯一的,所以当调用unshare时,得到数组的非共享副本,如果这是对数组的唯一引用,则可能是相同的数组。
复制
另一方面,copy强制数组的副本并返回--一个包含复制的项的新数组。
因此,如果您想拥有两个独立的数组副本,则应该在其他情况下使用copy,您可以使用unsare来确保数组没有其他引用。
发布于 2014-06-04 18:12:20
如果被调用者已经没有共享,unshare()将什么也不做。copy()无论如何都会复制它。
发布于 2014-07-21 18:33:41
随着Beta 3. unshare()和copy()都从Array中移除,这种情况也发生了变化。数组现在是在写上复制,默认行为非常类似于始终调用unshare()。
http://blog.human-friendly.com/swift-arrays-beta-3-hooray
https://stackoverflow.com/questions/24044610
复制相似问题