func main() {
a := append([]int{1, 2, 3, 4}, 1)
fmt.Println(len(a), cap(a))
b := a[1:2:3]
fmt.Println(len(b), cap(b))
b = a[1:2]
fmt.Println(len(b), cap(b))
}
以下为输出结果
5 8
1 2
1 7
得到以下结论:
s[low:high] | 从切片s的索引位置low到high处所获得的切片,len=high-low,cap=原slice的cap-low |
s[low : high : max] | 从切片s的索引位置low到high处所获得的切片,len=high-low,cap=max-low |
即第三个参数max未指定的情况下,cap=原slice的cap-第一个参数low