func cap(v Type) int
返回指定类型的容量,根据不同类型,返回意义不同。
数组: 元素个数 (和len(v)一样).
数组指针: *v的元素个数 (和len(v)一样).
Slice: the maximum length the slice can reach when resliced;如果v==nil, cap(v) 值为0;
Channel: channel 缓存区的容量, 以其中的元素为单位;如果v==nil, cap(v) 值为0;
参考代码:
package mainimport ("fmt")func main() {arr := []int{, , }fmt.Println("cap(arr) : ", cap(arr))fmt.Println("len(arr) : ", len(arr))//长度和容量都为5slice1 := make([]string, )//长度为3,容量为5slice2 := make([]int, , )fmt.Println("cap(slice1) : ", cap(slice1))fmt.Println("cap(slice2) : ", cap(slice2))c1 := make(chan int)c2 := make(chan int, )fmt.Println("cap(c1) : ", cap(c1))fmt.Println("cap(c2) : ", cap(c2))}
输出结果:
cap(arr) : 3
len(arr) : 3
cap(slice1) : 5
cap(slice2) : 5
cap(c1) : 0
cap(c2) : 2