我现在正在学习 Ada,目前的课程是关于数组的。考虑以下程序;
procedure Main is
type T_Bool is array (Boolean) of Integer;
type T_Intg is array (Integer range 1 .. 2) of Integer;
A1 : T_Bool := (others => 0);
A2 : T_Intg := (others => 0);
begin
-- None of these statements work
A2 := A1;
A2 (1 .. 2) := A1 (false .. true);
A2 := A1 (Boolean'First .. Boolean'Last);
end Main;
根据 Adacore 大学导师的说法,只要长度相同,就可以将值从一个数组复制到另一个数组。在代码片段中,为什么不能分配大小相同但索引方法不同的数组,尽管长度相同?
复制它的正确方法是什么?是循环遍历Boolean
类型范围内的所有索引并复制相应的数组索引,还是有另一种聪明的方法?