var splice1 []int
fmt.Printf("splice1: len:%d,cap:%d,%T", len(splice1), cap(splice1), splice1)
结果
splice1: len:1,cap:1,[]int
var splice1 []int = make([]int, 1, 3)
fmt.Printf("splice1: len:%d,cap:%d,%T\n", len(splice1), cap(splice1), splice1)
splice1 = append(splice1, 1)
splice1 = append(splice1, 1)
splice1 = append(splice1, 1)
splice1 = append(splice1, 1)
// 超出当前数组的长度后,会以cap=3的进行对数组扩容
fmt.Printf("splice1: len:%d,cap:%d,%T\n", len(splice1), cap(splice1), splice1)
结果
splice1: len:1,cap:3,[]int
splice1: len:5,cap:6,[]int
splice2 := []int{1, 2, 3,4}
fmt.Printf("splice2: len:%d,cap:%d,%T\n", len(splice2), cap(splice2), splice2)
splice2 = append(splice2, 1)
fmt.Printf("splice2: len:%d,cap:%d,%T\n", len(splice2), cap(splice2), splice2)
当没有设置cap后,append后的容量会以初始的数组len来进行新的扩容 结果
splice2: len:4,cap:4,[]int
splice2: len:5,cap:8,[]int