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