全站年SVIP
全站1000+试题无限查看
场景一,需要一个万能的 slice,但是不能用 [] 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...) }
Go 需要泛型的场景
场景一,需要一个万能的 slice,但是不能用 [] 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...) }