ADA中的枚举子范围

时间:2014-04-28 21:42:59

标签: ada

在现有的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的一部分吗?

2 个答案:

答案 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讨论。