小結
cap主要是為了讓slice提供可變長度
概念
cap 數據類型的容量
len 數據類型的實際長度
// 數據類型為 切片,長度為5,容量為10
a := make([]int,5,10)
fmt.Println(a,cap(a),len(a)) // out put : [0 0 0 0 0] 10 5
// 切片追加元素,當超過原來的的容量的時候,會翻倍擴容,但不是一定翻倍,如果容量太大不會再翻倍
for i:=0;i<10;i++ {
a = append(a, i)
}
// 再對值進行修改
for i:=0;i<10;i++ {
a[i] = i
}
fmt.Println(a,cap(a),len(a)) // [0 1 2 3 4 5 6 7 8 9 5 6 7 8 9] 20 15