在go中为所有类型添加前置函数

时间:2014-08-02 07:45:11

标签: go

我为go编写了一个非常小的前置函数。

func prepend(slice []int, elms ... int) []int {

   newSlice := []int{}

   for _, elm := range elms {
      newSlice = append(newSlice, elm)
   }

   for _, item := range slice {
      newSlice = append(newSlice, item)

   }

   return newSlice
}

是否有任何类型的函数通用?

这样我就可以在前面添加一个数组。

此外,还有更好的方法来编写此功能吗?

我没有在网上找到任何关于写一篇文章的内容。

2 个答案:

答案 0 :(得分:16)

我认为你不能以类型通用的方式编写这样的函数。但您也可以使用append作为前缀。

c = append([]int{b}, a...)

Playground

答案 1 :(得分:1)

这个怎么样:

// Prepend is complement to builtin append.
func Prepend(items []interface{}, item interface{}) []interface{} {
    return append([]interface{}{item}, items...)
}