golang make()的第三個參數


golang分配內存有一個make函數,該函數第一個參數是類型,第二個參數是分配的空間,第三個參數是預留分配空間,前兩個參數都很好理解,
對於第三個參數,例如a:=make([]int, 5, 10), len(a)輸出結果是5,cap(a)輸出結果是10,對a[4]進行賦值發現是可以得,
但對a[5]進行賦值發現報錯了,那么這個預留分配的空間要怎么使用呢?預留的空間需要重新切片才可以使用。
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]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM