说我有一个类型
type Record_T is
record
VAR1 : integer := 1;
VAR2 : string := "";
end record;
Run Code Online (Sandbox Code Playgroud)
如果要初始化此类型的常量变量,可以通过以下几种方法来实现:
Null_Record : constant Record_T := (1, "");
Null_Record : constant Record_T := Record_T'(1, "");
Run Code Online (Sandbox Code Playgroud)
但这迫使我先指定默认值,然后再进行指定。
我尝试了以下所有方法,但均无济于事
Null_Record : constant Record_T := ();
Null_Record : constant Record_T := Record_T'();
Null_Record : constant Record_T;
Run Code Online (Sandbox Code Playgroud)
但是必须有某种方法可以做到吗?至少,如果艾达缺乏这种能力,我会感到非常惊讶。
看起来在Ada 2005中应该可以实现这一点,对<>运算符使用新的“默认值初始化”进行聚合。
这看起来像
Null_Record : constant Record_T := (others => <>);
Run Code Online (Sandbox Code Playgroud)
我看不到有任何办法可以在2005年Ada之前做到这一点。不幸的是,对于Ada 95来说,这对我来说不是解决方案。