この配列を初期化できるかどうかを知りたい:
Type Some is array (1..5) of Integer;
SomeArray : Some := ( 1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5 );
次のように、いくつかの異なる方法で:
SomeArray : Some := ( others => n );
出来ますか?
この配列を初期化できるかどうかを知りたい:
Type Some is array (1..5) of Integer;
SomeArray : Some := ( 1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5 );
次のように、いくつかの異なる方法で:
SomeArray : Some := ( others => n );
出来ますか?
「Some」がAda 2012の予約語になったという事実を除いて、説明したとおりにその種の配列を正確に初期化できます。例えば:
with Text_IO; use Text_IO;
procedure Agg_Init_Test is
type Some_Type is array (1.. 5) of Integer;
N : constant := 4;
Data : Some_Type := (others => N);
procedure Init_To (N : Integer) is
begin
Data := (others => N);
end Init_To;
procedure Init_Data (Data : out Some_Type; N : Integer) is
begin
Data := (others => N);
end Init_Data;
function Inc (Val : in out Integer) return Integer is
begin
Val := Val + 1;
return Val;
end Inc;
procedure Init_Seq(Data : out Some_Type; Start : Integer) is
N : Integer := Start;
begin
Data := (others => Inc(N));
end Init_Seq;
begin
Init_To(42);
Init_Data(Data, 2012);
Init_Seq(Data, 0);
for I of Data loop
Put_Line(Integer'Image(I));
end loop;
end Agg_Init_Test;