13.7.2 切片

对于数组、指向数组的指针或切片,有两种切片表达式。

与字符串切片表达式类似,可以通过指定索引从 low(包含)到 high(不包含)的范围来获取数组、指向数组的指针或其他切片的切片。例如,下面的表达式返回 a 的指定范围的切片:

a[low : high]

新的片断的索引从0开始,长度等于high-low。如果省略了low或high的值,那么将使用它们的默认值,0代表low,len(a)代表high。例如,a[:]等同于a[0 : len(a)]。

a := []int{1, 2, 3, 4, 5}     // RHS 表达式是具有 5 个元素的 []int 类型的切片文本
s := a[1:4]                   // RHS 是一个切片表达式,它返回具有 3 个元素的 []int 类型的切片。它包括3个元素,2,3,4

此外,还可以使用以下语法进行切片:

a[low : high : max]

这个表达式构造了一个与简单切片表达式 a[low:high] 相同类型、长度和元素的切片。此外,它通过将容量设置为 max - low 来控制新切片的容量。在这种语法中,只有第一个索引可以省略,默认值为 0。

a := [5]int{1, 2, 3, 4, 5}
t := a[1:3:5]               // t 是指长度为 2 (3 - 1) 且容量为 4 (5 - 1) 的 []int 类型的切片

最后更新于