ios - += 和 append 将单个项目添加到数组的区别?

标签 ios arrays swift

通过 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 上测试,dif11.47393365859985dif20.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/

相关文章:

iphone - 为什么 UIWebView 实例不调用 scrollViewDidScroll?

xcode - 在应用程序和扩展程序之间快速传输变量

ios - 如何在不可变值上使用变异成员?

java - 你如何添加到 2D arraylist

arrays - 删除集合数组中的子集

arrays - 来自拆分的 AWK 数组未排序

swift - '[AnyObject] ?' does not have a member named ' 生成器'

javascript - iOS YouTube嵌入式播放器在单击红色按钮时无法播放视频

代码中的 iOS 自定义 UIView 访问属性

ios - 在 Swift 3 中将 JSON 对象解析为 NSArray