跳转到内容

Ada 编程/属性/'Enum Rep

来自维基教科书,开放的书籍,开放的世界

Ada. Time-tested, safe and secure.
Ada. 经久耐用,安全可靠。

此语言特性在 Ada 2022 中引入。 User_Enum_Type'Enum_Rep(Instance); 其中 User_Enum_Type 是一个 枚举类型,而 Instance 是该类型的一个实例,将返回该枚举实例的底层表示。枚举的默认表示基于其位置(从零开始)。但是,Ada 提供了语言设施来独立于位置指定表示。Enum_Rep 允许您检索该表示。通常情况下,在 Ada 中,枚举是它们自己的类型,表示并不重要。但是,出于跨语言兼容性和在嵌入式编程中可能使用的目的,可以操纵表示。虽然核心语言允许您更改表示,但它没有提供用于检索表示的便捷属性。此扩展属性解决了这一需求。使用它需要您知道用于支持枚举的底层类型,因为 Enum_Rep 返回该类型。通常情况下,标准类型 Integer 就足够了。

请注意,此属性现在是 Ada 2022 的标准属性。在早期的 Ada 版本中,它在 GNAT 中可用,作为一个实现定义的属性,但获取内部表示的标准且可移植的方法是使用 Unchecked_Conversion 的实例。

type Enum_Type is (Enum1, Enum2, Enum3);
Enum_Val : Enum_Type  := Enum1;
pragma Assert (Enum_Type'Enum_Rep(Enum_Val) = 0);  -- OK

另请参阅

[编辑 | 编辑源代码]

维基教科书

[编辑 | 编辑源代码]

Ada 参考手册

[编辑 | 编辑源代码]

Ada 2022 概述

[编辑 | 编辑源代码]
[编辑 | 编辑源代码]

GNAT 参考手册 > 实现定义的属性 > Enum_Rep

华夏公益教科书