Go 需要泛型的场景
场景一,需要一个万能的slice,但是不能用[]interface(为什么呢?见[]int和[]interface的区别)
func printA(a []interface{}) {
println(a)
}
// printA([]int{1, 2}) 报错
// printA([]int{"1", "2"}) 报错
场景二,复用代码,没有使用泛型的话,合并两个slice的方法如下:
func mergeIntSlice(a []int, b []int) []int {
return append(a, b...)
}
func mergeStrSlice(a []string, b []string) []string {
return append(a, b...)
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: