golang make()的第三個參數

學習了一段時間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]
相關文章
相關標籤/搜索