slice

底层结构

SliceHeader

底层是数组的指针,加上长度和容量

常用情景

不定长的数组,不过还是建议使用make并给定长度,减少扩容次数。

注意事项

扩容

growslice

  1. 如果期望容量大于当前容量的两倍就会使用期望容量;
  2. 如果当前切片的长度小于 1024 就会将容量翻倍;
  3. 如果当前切片的长度大于 1024 就会每次增加 25% 的容量,直到新容量大于期望容量;
  4. 当数组中元素所占的字节大小为 1、8 或者 2 的倍数时,会进行内存对齐

参考