英文:
prepend function for all types in go
问题
我已经为Go语言编写了一个非常简单的prepend函数。
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
}
有没有办法使这个函数对任何类型都通用?
这样我就可以将一个数组的切片作为参数传递给它。
此外,有没有更好的编写这个函数的方法?
我在网上没有找到关于编写这个函数的任何信息。
英文:
I have written a very small prepend function for 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
}
Is there anyway to make the function generic for any type?
So that I can put in a slice of arrays a prepend to that.
Also, is there a better way to write this function?
I have not found anything online about writing one.
答案1
得分: 17
我不认为你可以以类型通用的方式编写这样的函数。但是你可以使用append
函数来实现前置操作。
c = append([]int{b}, a...)
英文:
I don't think you can write such function in a type-generic way. But you can use append
to prepend as well.
c = append([]int{b}, a...)
答案2
得分: 1
这是一个示例代码,它定义了一个名为Prepend
的函数,用于在切片的开头插入一个元素。函数的输入参数包括一个切片items
和一个要插入的元素item
,返回值是插入元素后的新切片。函数的实现通过使用内置函数append
来实现,在切片的开头插入元素item
,然后将原始切片items
的所有元素追加到新切片中。
英文:
How about this:
// Prepend is complement to builtin append.
func Prepend(items []interface{}, item interface{}) []interface{} {
return append([]interface{}{item}, items...)
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论