comparable 约束设计

当前状态:历史设计记录。本文不再代表 Dujie 当前的泛型约束系统。 当前生效的泛型设计应优先参考 泛型系统。

这份旧文档讨论过什么

这份旧方案曾经尝试引入一个通用约束:

  • comparable

它希望统一承载:

  • == / !=
  • < / <= / > / >=
  • 泛型函数上的比较能力约束
  • map 键约束

为什么它已经失效

当前泛型系统已经收敛到“简单泛型系统”路线:

  • 第一阶段只支持极小约束集合
  • 当前唯一内建约束是 key
  • key 只用于表示“可作为 map 键”的能力

这意味着:

  • map 键约束不再通过 comparable 表达
  • “可比较”与“可作键”不再混为一个能力
  • 第一阶段不恢复通用 comparable 约束

保留本文的原因

保留这份文档只是为了:

  • 追溯早期约束系统思路
  • 解释为什么当前不采用 comparable
  • 为未来如果要扩展约束系统提供历史背景

当前应看哪里

如果要讨论当前有效的泛型和约束规则,应查看: