登录
首页 >  Golang >  Go问答

数组分配给与容量相关的切片的规则是什么?

来源:stackoverflow

时间:2024-04-04 12:33:22 229浏览 收藏

目前golang学习网上已经有很多关于Golang的文章了,自己在初次阅读这些文章中,也见识到了很多学习思路;那么本文《数组分配给与容量相关的切片的规则是什么?》,也希望能帮助到大家,如果阅读完后真的对你学习Golang有帮助,欢迎动动手指,评论留言并分享~

问题内容

a := [...]int{0, 1, 2, 3, 4} // an array
    sa := a[1:3] // sa == []int{1, 2}        cap(sa) == 4
    sb := a[:2] // sb == []int{0, 1}        cap(sb) == 5
    sc := a[2:] // sc == []int{2, 3, 4}        cap(sc) == 3
    sd := a[:] // sd == []int{0, 1, 2, 3, 4}  cap(sd) == 5

我的结论正确吗? slice 容量 = len(array) - [第一个索引] 并且与 [第二个索引] 无关?


解决方案


切片是底层数组的视图。给定 n 的数组长度,如果切片从 arr[0] 开始,则切片的容量为 n,如果切片从 arr[1] 开始,则切片的容量为 n-1,等等。的第二个索引。对数组进行切片时给出的第二个索引指定切片长度,而不是容量。

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

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