cap在golang中的应用

cap()可以用来查看数组或slice的容量

成都创新互联专注于企业营销型网站建设、网站重做改版、海陵网站定制设计、自适应品牌网站建设、H5建站电子商务商城网站建设、集团公司官网建设、外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为海陵等各大城市提供网站开发制作服务。

在数组中由于长度固定不可变,因此len(arr)和cap(arr)的输出永远相同

做法

sliceA的长度扩展为20,len=20,此时有用元素为11个,还有9个空位。

sliceA对外界暴露出来的接口只有ptr和len=20,此时如果需要再插入一个元素。

到底sliceA应该扩展呢还是可以继续在原来的基础直接插入呢,同时应该从哪个index插入呢?

这些问题在有了len和cap的组合之后就可以迎刃而解了。

cap()可以用来查看数组或slice的容量

在数组中由于长度固定不可变,因此len(arr)和cap(arr)的输出永远相同

在slice中,len(sli)表示可见元素有几个(也即直接打印元素看到的元素个数),而cap(sli)表示所有元素有几个,比如:

arr := []int{2, 3, 5, 7, 11, 13}
sli := arr[1:4]
fmt.Println(sli)
fmt.Println(len(sli))
fmt.Println(cap(sli))

cap()函数返回的是数组切片分配的空间大小。

package main 
 
import "fmt" 
 
func main() { 
    mySlice := make([]int, 5, 10)  
 
    fmt.Println("len(mySlice):", len(mySlice)) 
    fmt.Println("cap(mySlice):", cap(mySlice)) 
}

该程序的输出结果为:

len(mySlice): 5
cap(mySlice): 10

以上就是golang cap是什么意思的详细内容,更多请关注创新互联其它相关文章!


本文标题:cap在golang中的应用
文章URL:http://pwwzsj.com/article/igissh.html