在定义函数(结构等)时候,可能会有多种类型传入。只有在真正使用才知道是什么类型,此时就可以用一个更加宽泛的类型(必须存在一定约束,只能在那些类型的范围内使用)暂时占位。这个类型就叫泛型
写法:[泛型标识 泛型约束] ([T int | float64 | string])
1、any
使用any约束,实现一个简单的函数
2、comparable
使用 comparable 约束类型。 comparable 是一个编译器内置的特定的扩展接口类型,该类型必须支持“==“ 方法。
当定义了自定义类型时正常的泛型接口是无法识别的,需要在泛型接口的类型前加~,表示涵盖底层类型.