为什么用泛型
package main
import "fmt"
// 泛型定义:[T int | float32]
// (a, b T):泛型声明
// T:返回一个泛型类型
func Add[T int | float32 | float64](a, b T) T {
return a + b
}
// 没有泛型时的做法
func Add2(a, b interface{}) interface{} {
switch a.(type) {
case int:
a = a.(int) + b.(int)
return a
case float32:
a = a.(float32) + b.(float32)
return a
case float64:
a = a.(float64) + b.(float64)
return a
}
return nil
}
func main() {
fmt.Println(Add(1, 2.1))
fmt.Println(Add2(1, 2))
}
原创大约 2 分钟