1. 将切片 b 的元素追加到切片 a 之后: a = append(a, b...)
2. 复制切片 a 的元素到新的切片 b 上:
1. b = make([]T, len(a))
2. copy(b, a)
3. 删除位于索引 i 的元素:
a = append(a[:i], a[i+1:]...)
4. 切除切片 a 中从索引 i 至 j 位置的元素: a = append(a[:i], a[j:]...)
5. 为切片 a 扩展 j 个元素长度: a = append(a, make([]T, j)...)
6. 在索引 i 的位置插入元素 x: a = append(a[:i], append([]T{x}, a[i:]...)...)
7. 在索引 i 的位置插入长度为 j 的新切片: a = append(a[:i], append(make([]T, j), a[i:]...)...)
8. 在索引 i 的位置插入切片 b 的所有元素: a = append(a[:i], append(b, a[i:]...)...)
9. 取出位于切片 a 最末尾的元素 x: x, a = a[len(a)-1], a[:len(a)-1]
10. 将元素 x 追加到切片 a: a = append(a, x)
因此,您可以使用切片和 append 操作来表示任意可变长度的序列。
从数学的角度来看,切片相当于向量,如果需要的话可以定义一个向量作为切片的别名来进行操作。
如果您需要更加完整的方案,可以学习一下 Eleanor McHugh 编写的几个包:slices、chain 和 lists。