golang-切片slice的创建

时间:2019-01-24作者:klpeng分类:IT综合浏览:15464评论:0

在创建一个新的切片是都会先创建一个长度为len的数组,并为其开辟一个cap长度为cap的额外空间,所以在cap范围类增加元素,数组的起始地址不会改变,否则会创建一个新的数组,即起始的位置发生改变

数组创建

代码

intArr:=[...]int{1,2,3,4,5,6,7,9}
//方式一指定开始和结束
s:=intArr[1:3]
//方式er指定开始和结束+容量
s:=intArr[1:3:6]

创建后的slice

[a: b :c]
a:起始位置
b:截取数据的结束位置 默认到末端)
c:截取后的容量位置 默认到末端)
len为截取的元素长度 即:(3 - 1=2)
cap为截取的起始元素到素组最后一个元素的长度 即:
(原数组长度:8 - 起始元素1=7)
底层数组: 为原数组的截取的起始元素到素组最后一个元素

golang-切片slice的创建

make创建

代码

s:=make([]int,10,20)

创建后的slice

len为:10
cap为:20(在创建时指定)
底层数组: 长度为10的数组

slice扩容

在cap范围内不会创建新的底层数组
超过cap则会创建新的数组 ,生成新的cap和len 超过cap也会的

打赏
文章版权声明:除非注明,否则均为彭超的博客原创文章,转载或复制请以超链接形式并注明出处。
相关推荐

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

猜你喜欢