1 泛型基础
// 定义约束 constraint,理解为类型的集合
type Sumable interface {
int64 | int32 | int16 | int8 | uint64 | uint32 | uint16 | uint8 | string | float32 | float64
}
// 泛型函数的定义方式,T 后面定义类型集合
func genericSum1[T Sumable](a T, b T) T {
return a + b
}
func genericSumIntOrFloat[T int64|float64](a T, b T) T {
return a + b
}
func TestGenericSum(t *testing.T) {
genericSum[float32](10.0, 10.0)
genericSumIntOrFloat[int64](123,456)
}
2 泛型内置数据结构
// any 是内置类型约束,表示任意类型
func makeGenericList[T any](items ...T