func cap(v Type) int數組
返回指定類型的容量,根據不一樣類型,返回意義不一樣。緩存
數組: 元素個數 (和len(v)同樣).spa
數組指針: *v的元素個數 (和len(v)同樣).指針
Slice: the maximum length the slice can reach when resliced;若是v==nil, cap(v) 值爲0;code
Channel: channel 緩存區的容量, 以其中的元素爲單位;若是v==nil, cap(v) 值爲0;blog
參考代碼:string
package main import ( "fmt" ) func main() { arr := []int{1, 2, 3} fmt.Println("cap(arr) : ", cap(arr)) fmt.Println("len(arr) : ", len(arr)) //長度和容量都爲5 slice1 := make([]string, 5) //長度爲3,容量爲5 slice2 := make([]int, 3, 5) fmt.Println("cap(slice1) : ", cap(slice1)) fmt.Println("cap(slice2) : ", cap(slice2)) c1 := make(chan int) c2 := make(chan int, 2) fmt.Println("cap(c1) : ", cap(c1)) fmt.Println("cap(c2) : ", cap(c2)) }
輸出結果:class
cap(arr) : 3import
len(arr) : 3channel
cap(slice1) : 5
cap(slice2) : 5
cap(c1) : 0
cap(c2) : 2