结构
type slice struct {
array unsafe.Pointer // 底层是个数组
len int // slice元素个数
cap int // 数组容量
}
扩容策略
- 当要扩成的大小newCap>2*currentCap,扩为newCap
- 当currentCap<1024时,扩为两倍
- 当currentCap>=1024时,currentCap * 1.25 * 1.25 * ... (直到>newCap)
扩容:memmove(newSlice, oldSilce, lenmem)做内存拷贝
网友评论