在Ada中子程序的声明部分中,变量赋值的评估顺序是否是声明它们的顺序?例如,如果我写
procedure Foo() is
I: Integer := 4;
J: Integer := I * 2;
begin
--do stuff
end Foo;
我可以肯定地说I
将始终在J
之前进行评估吗?
答案 0 :(得分:3)
在我看来,根据ARM 3.11(7),声明性项目确实按顺序进行了评估:
对declarative_part的详细说明包括对declarative_item(如果有)的详细说明,按照在declarative_part中给出的顺序进行。
已编辑:ARM的来源