数组 – 如何使数组的确切重复副本?

我是Swift语言的初学者。

我如何使一个数组的精确副本?

我很难找到有关在Swift中复制数组的信息。

我试过使用.@R_502_4837@

var originalArray = [1,2,3,4]
var duplicateArray = originalArray.@R_502_4837@
数组在Swift中有完整的语义,所以没有必要。

var duplicateArray = originalArray就是你需要的。

如果数组的内容是引用类型,那么是的,这将只复制指针到你的对象。要执行内容的深层副本,您将改为使用映射并执行每个实例的副本。对于符合NScopying协议的Foundation类,可以使用@R_502_4837@方法

let x = [NSMutableArray(),NSMutableArray(),NSMutableArray()]
let y = x
let z = x.map { $0.@R_502_4837@ }

x[0] === y[0]   // true
x[0] === z[0]   // false

注意,这里有一些陷阱,Swift的值语义正在努力保护你,例如,因为NSArray表示一个不可变的数组,它的copy方法只是返回一个对它的引用,所以上面的测试会产生意想不到的结果。

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...