在切片头部/任意位置插入元素
参考文档: https://blog.csdn.net/austin1000/article/details/117734067
go语言自带的append,只能在切片的末尾加入元素,但如果要在开头加入元素的话,这样写是会报错的
a := []int{1,2}
a := append([]int{1}, a)
因为append的第二个参数只能是元素(可以是不定长元素),而不能是切片。
func append(slice []Type, elems ...Type) []Type
所以得这样写:
a := []int{1,2}
a := append([]int{1}, a...)
还有一种写法更通用,可以在任意位置插入元素,供参考:
a := []int{1,2}
a := append(a, 0) // 先把原来的切片长度+1
index := 2 // 要把新元素插入到第二个位置
copy(a[index+1:], a[index:])
a[index] = 0 // 新元素的位置是0