Go 语言是如何实现切片扩容的?

本文阅读 1 分钟
首页 golang 正文
func main() {
arr := make([]int, 0)  
for i := 0; i < 2000; i++ { 
fmt.Println("len为", len(arr), "cap为", cap(arr))  
arr = append(arr, i) 
}
}

我们可以看下结果

依次是 0,1,2,4,8,16,32,64,128,256,512,1024

但到了1024之后,就变成了 1024,1280,1696,2304

每次都是扩容了四分之一左右

本文来自投稿,不代表本站立场,如若转载,请注明出处:
如何限制 goroutine 并发数量 (channel 或 WaitGroup)
« 上一篇 09-17
分片键的选择?
下一篇 » 09-17

发表评论

发表评论