cap()可以用来查看数组或slice的容量
成都创新互联从2013年开始,先为单县等服务建站,单县等地企业,进行企业商务咨询服务。为单县企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。在数组中由于长度固定不可变,因此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是什么意思的详细内容,更多请关注创新互联成都网站设计公司其它相关文章!
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款