9.5.1 类型约束
类型约束是限制给定类型参数的允许类型的规范。
更具体地说,Go中的类型约束是定义相应类型参数的允许类型集的接口。它有效地指定了该类型参数值支持的操作。
Go总是需要类型约束,即使它只是any。例如,
任何接口都可以用作泛型类型约束。后面的书会更详细地讲解Go接口。
any
Go 1.18中首次引入的预声明名称any是interface{}的别名。任何的类型约束意味着对应的类型参数没有约束。
comparable
Go 1.18中首次引入的预声明接口类型comparable不包括任何特定方法。这个特殊接口的唯一目的是表示所有“可比较”的具体(非接口)类型的集合。
如果满足以下条件,则认为类型T实现了comparable:
T是非接口类型且T支持==和!=操作;或
T是接口类型且T的类型集中的每个类型都实现了comparable
最后更新于