學習了一段時間golang,大概能夠用golang作一些小東西了,因而回顧了一下一些基礎的東西。golang分配內存有一個make函數,該函數第一個參數是類型,第二個參數是分配的空間,第三個參數是預留分配空間,前兩個參數都很好理解,但我對第三個參數卻一臉懵逼,例如a:=make([]int, 5, 10), len(a)輸出結果是5,cap(a)輸出結果是10,而後我對a[4]進行賦值發現是能夠得,但對a[5]進行賦值發現報錯了,因而鬱悶這個預留分配的空間要怎麼使用呢,因而google了一下發現原來預留的空間須要從新切片纔可使用,因而作一下記錄,代碼以下。golang
package main import "fmt" func main(){ a := make([]int, 10, 20) fmt.Printf("%d, %d\n", len(a), cap(a)) fmt.Println(a) b := a[:cap(a)] fmt.Println(b) }
輸出結果函數
10, 20 [0 0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]