为什么 cap(b) 是 6 不应该是 5?
package main
import "fmt"
func main() {
var s []int
a := append(s, 1, 2, 3, 4)
b := append(s, 1, 2, 3, 4, 5)
c := append(s, 1, 2, 3, 4, 5, 6)
fmt.Println(cap(a), cap(b), cap(c)) //output: 4 6 6
}
cap
- 底层 int 数组的容量。
您可以使用 len(a)
- 接收数组中的元素数量。
如果 s 的容量不足以容纳附加值,append 会分配一个新的、足够大的底层数组,以容纳现有切片元素和附加值。否则,追加会重新使用底层数组。