如何在Golang中使用泛型将两个切片拼接函数合并为单个通用函数
泛型合并实现代码
你可以直接使用Go内置的类型参数实现通用的切片拼接函数,无需针对每种切片类型单独实现:
func concat[T any](args ...[]T) []T { concated := []T{} for _, i := range args { concated = append(concated, i...) } return concated }
注:该实现要求Go版本 >= 1.18 才可正常编译使用。
调用示例
你原有两个场景的调用都可以直接复用这个通用函数,不需要修改原有结构体定义:
- 拼接自定义结构体切片
// 示例:拼接两个directory_account_price_discount_tax类型的切片 var slice1, slice2 []directory_account_price_discount_tax result := concat(slice1, slice2)
- 拼接字符串切片
// 示例:拼接两个字符串切片 var strSlice1, strSlice2 []string strResult := concat(strSlice1, strSlice2)
内容的提问来源于stack exchange,提问作者user17148257
相关产品推荐
相关产品推荐

