1
1
答案似乎只是“不”。值在运行时存在。类型检查在编译时进行。这两个时间间隔不相交,运行时总是严格在编译时之后,因此无法及时传播有关值的信息以获取有关类型的其他信息。 注意,如果一个排序是你想要的(你不想添加或减去版本号),那么你可以简单地重用子类型关系如下:
|
2
1
诀窍是认识到值可以有类型字段,并且类型信息在编译时可用。考虑到这一点,我们可以定义:
并为这些类型定义枚举“值”,例如:
重构
我们可以测试:
|