我使用`go version go1.17.2 linux/amd64` 编写了下面的程序探究Go slice的扩容机制:
```go
package main
import "fmt"
func main() {
s := []int{1, 2}
s = append(s, 3, 4, 5)
fmt.Printf("%d %d", len(s), cap(s))
fmt.Println()
s = append(s, 6, 7, 8)
fmt.Printf("%d %d", len(s), cap(s))
fmt.Println()
}
```
程序的输出是
![截屏2021-11-20 下午9.18.02.png](https://static.studygolang.com/211120/b5f8bdd61e624cf2127a7f7e39745330.png)
而如果是在1024的限度内指数增长应该是[5, 8], 但是这里的cap为什么是6?
有疑问加站长微信联系(非本文作者)