为了账号安全,请及时绑定邮箱和手机立即绑定

第一个cap(slice5) 为啥是4

slice5不是[5,6]吗  那5在原数组里的索引就是4,然后数组长度是10  差值绝对值不就是6吗??

正在回答

3 回答

1、如果单纯的写slice5 := numbers4[4:6],切片slice5的底层数组是numbers4 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

那么cap就是:底层数组长度10 - 初始索引4 = 6 没错,取到的对应底层数组的索引值是 4 5,分别对应的值是: 5 6 

但是切片操作符加上了第三个值slice5 := numbers4[4:6:8],代表的意思是:新切片容量索引值最大到8,但是取不到8,也就是说:现在取到的对应底层数组索引值为4 5 6 7,分别对应的值是:5 6 7 8

1 回复 有任何疑惑可以回复我~

上限是8即最大扩展上限到下标8,下标8的9为上限不取,实际值为5,6,cap后扩展就是5,6,7,8

1 回复 有任何疑惑可以回复我~

slice5 := numbers4[4:6:8]

这个切片有三个参数,第三个参数

这第三个正整数被称为容量上界索引。它的意义在于可以把作为结果的切片值的容量设置得更小。换句话说,它可以限制我们通过这个切片值对其底层数组中的更多元素的访问。

仔细理解下左边的说明.

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

第一个cap(slice5) 为啥是4

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信