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

sunchenzl · 2016-11-18 03:33:24 · 1791 次点击

这是 append 的策略。几乎所有语言,对于数组的增长,都会这种方式,避免过多的内存拷贝,这是出于性能考虑,空间换时间。

#1
更多评论

为什么当只有一个元素的时候,cap是2,有两个元素的时候,cap还是2?

#2

增长方式,2的指数次幂;两个元素,cap可以容下,不需要扩张。这个是一种实现方式,不同语言,在这块可能会有区别,比如,有些语言,在当前元素大于 cap 的2/3时,会扩张。

#3