我有以下示例代码:
package main
import "fmt"
func main() {
var s []int
printSlice(s)
s = append(s, 0)
printSlice(s)
}
func printSlice(s []int) {
fmt.Printf("len=%d cap=%d %v\n", len(s), cap(s), s)
}
运行时输出:
len=0 cap=0 []
len=1 cap=2 [0]
我认为s的cap
在运行1
之后应该是s = append(s, 0)
,为什么变成2
?