【发布时间】:2018-04-02 15:14:48
【问题描述】:
我在 Apple Docs 中阅读过:
“当您向数组添加元素并且该数组开始超出其保留容量时,该数组会分配更大的内存区域并将其元素复制到新存储中。新存储是旧存储大小的倍数。 "
所以,我打开 Playground 并创建了一些示例。第一个例子似乎是正确的:
var array = [1, 2, 3, 4, 5]
array.capacity //5
array.append(contentsOf: [6, 7, 8, 9, 10])
array.capacity //10
array.append(11)
array.capacity //20
但我没看懂第二个例子:
var array = [1, 2, 3, 4, 5]
array.capacity //5
array.append(contentsOf: [6, 7, 8, 9, 10, 11])
array.capacity //12
array.append(12)
array.capacity //12
为什么第二个例子的容量是12?我什至看不懂文档并在 Google 中搜索。
【问题讨论】: