我在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 ?我甚至不理解阅读文档和在谷歌搜索。