切片的长度和容量
题目:
切片 a、b、c 的长度和容量分别是多少?
1 |
|
答案解析:
a、b、c 的长度和容量分别是 0 3、2 3、1 2。
知识点:数组或切片的截取操作。截取操作有带 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。
a切片截取s[:]
相当于s[0:0]
,故长度为0,容量为l - i = 3 - 0 = 3;
b切片截取s[:2]
相当于s[0:2]
,故长度为j - i = 2 - 0 = 2
,容量为l - i = 3 - 0 = 3;
c切片截取s[1:2:cap(s)]
相当于s[1:2:3]
,故长度为j - i = 2 - 1 = 1
,容量为l - i = 3 - 1 = 2
。