swift中的数组可以根据大小动态增长,但似乎不会收缩。
var x: [Int] = []
for i in 0...1000 {
x.append(i)
}
for i in reverse(1000...0) {
x.removeAtIndex(0)
}
Run Code Online (Sandbox Code Playgroud)
容量x依然很大。我也尝试removeLast()将其复制到新变量,但似乎并没有减少容量。
要重置capacity,请使用.removeAll(keepCapacity: false):
var x: [Int] = []
for i in 0...1000 {
x.append(i)
}
x.capacity // -> 1,532
x.removeAll(keepCapacity: false)
x.capacity // -> 0
Run Code Online (Sandbox Code Playgroud)
如果要在优化后保留元素capacity,请使用Array()构造函数复制它:
for i in 0...1000 {
x.append(i)
}
for i in reverse(0...999) {
x.removeAtIndex(0)
}
x.capacity // -> 1532
x = Array(x) // -> [1000]
x.capacity // -> 2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3857 次 |
| 最近记录: |