«

Go 语言中如果将元素插入到 slice 前面

一次代码实现中,需要在将元素插入到 slice 的第一位,是否有标准库来实现?

我们知道,在 Go 语言中,可用 append 来将元素附加到 slice 的后面,比如:

slice := []int{1, 2, 3}  
slice = append(slice, 4)  
// 输出:[1 2 3 4]

注意, append 函数不仅可以插入一个元素,还可以同时插入多个元素,即:

slice := []int{1, 2, 3}  
slice = append(slice, 4, 5, 6)  
// 输出:[1 2 3 4 5 6]

这就要看下 append 的函数体了(在 buildin.go 中):

func append(slice []Type, elems ...Type) []Type  

append 是 Go 中的内置函数,其作用就是在 slice 的尾部插入若干元素。

回到我开头的需求,如果将元素插入到 slice 的首部呢?有一个讨巧的方法,只需要调换两个参数的位置即可

slice := []int{1, 2, 3}  
// 将元素4,5,6插入到slice的前面
slice = append([]{4, 5, 6}, slice...)  
// 输出:[4 5 6 1 2 3]
分享