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')
}
