Swift 哪一个更适合移除数组的所有部分或重新初始化数组?

Swift 哪一个更适合移除数组的所有部分或重新初始化数组?,swift,Swift,再次初始化数组优于数组的removeAll()?在这两种情况下,对堆内存的影响是什么?只要不保留容量,它们实际上是一样的 以下是: 这是: 在这两种情况下,它只是创建一个新的\u Buffer(它是\u ArrayBuffer或\u ContiguousArrayBuffer),并将其分配给\u Buffer。内存使用或其他行为没有区别\u buffer是数组的唯一属性,因此数组与其缓冲区之间没有内存差异(Swift结构没有额外的头)removeAll()在创建新数组时实现 如果您计划将数组重新

再次初始化数组优于数组的removeAll()?在这两种情况下,对堆内存的影响是什么?

只要不保留容量,它们实际上是一样的

以下是:

这是:

在这两种情况下,它只是创建一个新的
\u Buffer
(它是
\u ArrayBuffer
\u ContiguousArrayBuffer
),并将其分配给
\u Buffer
。内存使用或其他行为没有区别
\u buffer
是数组的唯一属性,因此数组与其缓冲区之间没有内存差异(Swift结构没有额外的头)
removeAll()
在创建新数组时实现


如果您计划将数组重新填充到类似的大小,则
keepCapacity:true
可能会阻止一些重新分配。

我认为“全部删除”更好,因为如果您初始化一个新数组,这意味着您的内存中将有两个数组。此链接将帮助您
public init() {
  _buffer = _Buffer()
}
public mutating func removeAll(keepingCapacity keepCapacity: Bool = false) {
  if !keepCapacity {
    _buffer = _Buffer()
  }
  else {
    self.replaceSubrange(indices, with: EmptyCollection())
  }
}