Go 1.18新特性学习笔记03: 将类型约束声明为接口
今天继续学习Go 1.18引入的泛型,我们将以Go官方的泛型教程为资料,每天利用几分钟的时间来学习,慢慢积累。 昨天我们定义了一个泛型函数,代码如下: // SumIntsOrFloats sums the values of map m. It supports both int64 and float64 // as types for map values. func SumIntsOrFloats[K comparable, V int64 | float64](m map[K]V) V { var s V for _, v := range m { s += v } return s } 在定义泛型函数时,需要为泛型参数指定 类型约束(type constraint) 来限制泛型参数类型的范围。 SumIntsOrFloats函数名称后边中括号的内容[K comparable, V int64 | float64]就是类型约束。