package main
import "fmt"
func main() {
var a = []int{}
for i := 0; i < 1029; i++ {
a = append(a, i)
fmt.Printf("%d\n", cap(a))
}
fmt.Print(a)
}
输出结果为
0
1
2
4
4
8
8
8
8
16
16
16
16
16
16
16
16
…
由此可见每次扩容都是旧容量的2倍,但你以为就这样结束了吗
没有
在容量是512时,再次扩容就是848,1280,1792,2560,3408,5120