通过 Swift 的基础知识,我注意到有两种向数组添加项的方法。
一种方法是使用 .append
方法,另一种方法是使用 +=
运算符(允许添加 > 2 个项目数组)。
当您只想将单个项目添加到数组时,使用 +=
和 .append
有什么区别吗?
fooArray.append("Bar")
对比
fooArray += ["Bar"]
最佳答案
这两个选项做完全相同的事情 - 向数组添加一个值,但是 +=
将允许添加多个值,而 .append()
只会允许加一个值
下面是一些代码,用于测试添加单个值哪个更快
var array: [String] = []
var array2: [String] = []
let time1 = NSDate().timeIntervalSince1970
for i in 0...1000000{
array += ["foobar"]
}
let time2 = NSDate().timeIntervalSince1970
let dif1 = time2 - time1
let time3 = NSDate().timeIntervalSince1970
for i in 0...1000000{
array2.append("foobar")
}
let time4 = NSDate().timeIntervalSince1970
let dif2 = time4 - time3
在 iPhone 6s 上测试,dif1
为 1.47393365859985,dif2
为 0.385605080127716,这是一个差异1.0883285785 秒,重复一百万次。 (100次运行的平均时间)
这意味着对于仅一次重复,两者之间的区别在于 .append
将大约 0.000001088 秒,或者比使用 +=
快 1.088 微秒。
最后,使用哪个值来附加一个值并不重要——这只是个人偏好(显然,如果您需要向数组添加一百万个值,您应该使用 .append()
因为它会明显更快)
Vikingosegundo对写这个答案很有帮助,as per what he said ,你可以使用
func +=<T>(inout left:[T], right: T) -> [T]{
left.append(right)
return left
}
两全其美 - 这将有效地将 array += value
转换为 array.append(value)
(我相信这曾经是旧的 Swift 版本,但后来被删除了)
关于ios - += 和 append 将单个项目添加到数组的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34700920/