Go内置函数cap
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 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)) }
输出结果:
cap(arr) : 3
len(arr) : 3
cap(slice1) : 5
cap(slice2) : 5
cap(c1) : 0
cap(c2) : 2
-------------------------------------
欢迎关注微信公众号 golang_everyday 每日Go语言,每日推出一篇学习文章,欢迎阅读。
扫码关注更方便
欢迎关注微信公众号 golang_everyday 每日Go语言,每日推出一篇学习文章,欢迎阅读。
扫码关注更方便