Skip to content

Latest commit

 

History

History
25 lines (16 loc) · 470 Bytes

2-slice.md

File metadata and controls

25 lines (16 loc) · 470 Bytes

底层结构

type slice struct {
	array unsafe.Pointer
	len   int
	cap   int
}
  • 通过make函数初始化
  • array是指向底层数组的指针

扩容

先预估容量

  • oldCap*2 < newCap,直接扩到newCap
  • oldCap>1024, newCap = 1.25*oldCap,
  • oldCap<1024, newCap = 2*oldCap

根据预估容量x元素大小,寻址最匹配的内存规格,再得出实际扩容大小,所以实际扩容后的容量与上面公司可能存在一定出入