为什么要在go的nil slice中添加1个元素以使其上限变为2个而不是1个?

时间:2019-07-26 07:46:25

标签: go

我有以下示例代码:

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

0 个答案:

没有答案