在现有的ADA代码中,我发现了这两行:
type SWITCH_TYPE is (TI1, TO3, TI2, TO1, TI3, TO2);
subtype TI_SWITCH_TYPE is SWITCH_TYPE range TI1..TI2;
subtype TO_SWITCH_TYPE is SWITCH_TYPE range TO1..TO2;
TO3是TI_SWITCH_TYPE的一部分吗?同样,TI3是TO_SWITCH_TYPE的一部分吗?
答案 0 :(得分:3)
是的,他们是。枚举值按照定义的方式排序,您可以使用这样的范围。这些名称与订购无关。
答案 1 :(得分:2)
如上所述,但是知道使用Ada 2012,甚至可以定义非连续的枚举子类型,例如:
type Animal is
(Bear, Cat, Dog, Wolf, Horse);
subtype Pet is Animal
with Static_Predicate => Pet in Cat | Dog | Horse;
关于Subtype Predicates的Ada Rationale讨论。