数据结构
type slice struct {
array unsafe.Pointer
len int
cap int
}
array指向底层数组,len表示切片长度,cap表示数组容量
slice的扩容机制
newcap := old.cap
doublecap := newcap + newcap
if cap > doublecap {
newcap = cap
} else {
if old.cap < 1024 {
newcap = doublecap
} else {
// Check 0 < newcap to detect overflow
// and prevent an infinite loop.
for 0 < newcap && newcap < cap {
newcap += newcap / 4
}