qq_記憶蔷薇_0
2020-09-19 17:45
slice5不是[5,6]吗 那5在原数组里的索引就是4,然后数组长度是10 差值绝对值不就是6吗??
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
上限是8即最大扩展上限到下标8,下标8的9为上限不取,实际值为5,6,cap后扩展就是5,6,7,8
slice5 := numbers4[4:6:8]
这个切片有三个参数,第三个参数
这第三个正整数被称为容量上界索引。它的意义在于可以把作为结果的切片值的容量设置得更小。换句话说,它可以限制我们通过这个切片值对其底层数组中的更多元素的访问。
仔细理解下左边的说明.
Go语言第一课
107794 学习 · 148 问题
相似问题