关于go里面cap的结果的疑问

sunchenzl · · 1618 次点击
为什么当只有一个元素的时候,cap是2,有两个元素的时候,cap还是2?
#2
更多评论
这是 append 的策略。几乎所有语言,对于数组的增长,都会这种方式,避免过多的内存拷贝,这是出于性能考虑,空间换时间。
#1
增长方式,2的指数次幂;两个元素,cap可以容下,不需要扩张。这个是一种实现方式,不同语言,在这块可能会有区别,比如,有些语言,在当前元素大于 cap 的2/3时,会扩张。
#3