funcMinInt32(a, b int32)int32 { if a < b { return a } return b } funcMinFloat64(a, b float64)float64 { if a < b { return a } return b }
// 也可以简写为:func MinInt32OrFloat64[T int | float64](a, b T) T { funcMinInt32OrFloat64[Tinterface{ int32 | float64 }](a, b T) T { if a < b { return a } return b }
funcmain() { MinInt32(1, 2) MinFloat64(1.1, 2.2)
MinInt32OrFloat64[int32](1, 2) //使用中括号指定类型实参 MinInt32OrFloat64(1.1, 2.2) //自动进行类型推导 //MinInt32OrFloat64(1, 2.2) //default type float64 of 2.2 does not match inferred type int for T //MinInt32OrFloat64(1, 2) //int does not implement interface{int32|float64} (int missing in int32 | float64) MinInt32OrFloat64(1, int32(2)) //显式指定其中一个入参的类型