Rust 中的类型系统:封闭宇宙与开放宇宙

2025-02-21
Rust 中的类型系统:封闭宇宙与开放宇宙

本文探讨了在 Rust 中如何用类型系统建模现实世界中可能不断变化的选择。针对封闭宇宙(例如 Rust 的 Option 类型),枚举是合适的;而对于半开放宇宙(库作者可以添加新选项,但使用者不能),非穷尽枚举是更好的选择,它强制使用者处理通配符模式,保证了 API 的向后兼容性。对于完全开放的宇宙,可以使用字符串或带有新类型的包装器,或者使用 trait 来实现更大的灵活性。文章还分析了使用 "Unknown" 变体模式的缺点以及 sealed trait 的应用。最终,文章建议根据实际情况选择最合适的方案,并详细比较了字符串和 trait 的优缺点。

开发