1. Slice 扩容机制
当 newLen >= 2 * cap, 则 newCap = newLen
当 newLen < 2 * cap
- 如果 cap < 256, 则 newCap = 2 * cap
- 如果 cap >= 256, 则 newCap = cap + (cap + 3 * threshold) / 4, 即 1.25 倍容量+ 0.75 倍阈值的平滑因子, 平滑因子在各个阈值阶段也会不同
starting cap growth factor 256 2.0 512 1.63 1024 1.44 2048 1.35 4096 1.30
2. 结构体所占字节长度怎么计算
可以使用unsafe
包中的Sizeof
函数来计算结构体所占字节长度
1 | package main |
output
1 | unsafe.Sizeof(s): 16 |