按部就班。 但是,结构体、值复制传达。
属性len表中的元素数。 读取/写入操作不能超过此限制。
属性cap表扩展容量最多,不能超过数组限制。
slice==nil时,len、cap的结果都为0。
作为可变长度数组的替代,可以关联部分或全部子数组
可以直接创建,也可以从底层数组中获取生成
len ) )获得元素的个数,使用cap ) )获得容量
通常使用make ()创建
如果多个切片指向同一个基数组,则任何值的更改都会影响全部
使用下标访问元素时,下标不能超过len的大小,以使数组的下标不超出len的范围。
1 .片a、b、c的长度和容量分别是多少? func main () s :=[3] int (1,2,3 ) a :=s [ :0 ] b :=s [ :2 ] c 3360=s [ 133602: cap ] s ) 剪切操作有2个或3个参数,如[i:j]和[i:j:k],假设要剪切的基数组的长度为l。 在算子[i:j]中,在省略了I的情况下为0,在省略了j的情况下基排列的长度为默认值,切取得到的片的长度和容量的计算方法为j-i,l-i。 运算符[i:j:k],k主要用于限制片的容量,但不能大于数组的长度l。 剪切得到的切片的长度和容量的计算方法为j-i,k-i。
结论:
底层数组长度为 l
[i:j] ——— 长度为 j-i 容量为 l – i
[i:j:k] ———长度为j-i、容量为k-i
2 .分别印什么? slice :=[ ] int { 10,20,30,40,50 } new slice :=slice [ 1:3 ] new slice=append (new slice,60 ) fmt.pr