1.以下的這行代碼
在切片進行初始化的時候長度為0 容量為10 直接給切片進行賦值 報錯 長度超出范圍,切片是引用類型可以自動擴容,我們可以使用方法append專門給切片進行擴容
Slice切片初始化通過make分配內存的時候必須分配長度,容量是可選的 a := make([]int,5,5) 長度為5 容量為5的int類型的切片,切片是一個動態數組可以自動擴容
package main import ( "fmt" ) func main() { var a []int a = make([]int, 0, 10) //make進行初始化一個切片 不然panlic 長度len為0 容量capacity為10 // a[0] = 1 // fmt.Println(a) //這樣就panlic了 因為長度為0 導致的 index out of range //不過我們可以使用 append 方法進行給切片追加元素 a = append(a, 1) fmt.Println(len(a), cap(a)) //查看下長度和 容量 }
apped 是一個內置的函數
需要的注意的給slice進行擴容以后,我們需要重新賦值
package main import( "fmt" ) func main(){ var a []byte //append是一個內置的函數 //為什么給slice追加元素以后還需要賦值給 a這個變量 //因為slice 是一個引用類似,支持自動擴容,切片擴容以后地址也發生了改變,所以我們要重新賦值給a這個變量 //擴容之后的地址 和我們之前這個a地址是不一樣的 a = append(a,'a') }