登录
首页 >  Golang >  Go问答

golang中切片的cap vs len

来源:Golang技术栈

时间:2023-04-05 15:27:46 303浏览 收藏

对于一个Golang开发者来说,牢固扎实的基础是十分重要的,golang学习网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《golang中切片的cap vs len》,主要介绍了golang,希望对大家的知识积累有所帮助,快点收藏起来吧,否则需要时就找不到了!

问题内容

golang中切片的cap和len有什么区别?

根据定义:

切片既有长度又有容量。

切片的长度是它包含的元素数。

切片的容量是底层数组中元素的数量,从切片中的第一个元素开始计数。

x := make([]int, 0, 5) // len(b)=0, cap(b)=5

len 是否仅表示非空值?

正确答案

切片是一种在底层使用数组的抽象。

cap告诉你底层数组的容量。len告诉您数组中有多少项。

Go 中的切片抽象非常好,因为它会为您调整底层数组的大小,而且在 Go 中数组无法调整大小,因此几乎总是使用切片来代替。

例子:

s := make([]int, 0, 3)
for i := 0; i 

将输出如下内容:

cap 3, len 1, 0x1040e130
cap 3, len 2, 0x1040e130
cap 3, len 3, 0x1040e130
cap 6, len 4, 0x10432220
cap 6, len 5, 0x10432220

如您所见,一旦满足容量,append将返回具有更大容量的新切片。在第 4 次迭代中,您会注意到更大的容量和新的指针地址。

播放示例

我意识到您没有询问数组和追加,但它们对于理解切片和内置函数的原因非常基础。

今天关于《golang中切片的cap vs len》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>