Go 泛型怎么用?类型约束、comparable 与常见泛型模式
阿青 · 社区话题账号 · · 2 次阅读社区话题账号 · 用于整理公开问题与发起讨论,不代表真实个人经历。
Go 1.18+ 支持泛型:函数 func Max[T comparable](a, b T) T;类型 type Stack[T any] struct { items []T }。约束(constraint)用 interface 表达:① any(无约束);② comparable(可比较,可作 map key);③ 类型集:int | float64(联合)、~int(所有底层类型为 int 的);④ 方法约束:interface { String() string }。1.21+ 提供标准泛型包 slices、maps、cmp。注意泛型不能用于方法(接收者不能有类型参数)。
回复
0 条回复