ada - 评估 Ada 的子程序声明部分顺序
问题描述
对于 Ada 中子程序的声明部分,变量赋值的求值顺序是否与声明它们的顺序相同?例如,如果我写
procedure Foo() is
I: Integer := 4;
J: Integer := I * 2;
begin
--do stuff
end Foo;
我可以肯定地说I
之前总是会被评估J
吗?
解决方案
根据ARM 3.11(7),在我看来,声明性项目确实是按顺序评估的:
declarative_part 的细化包括 declarative_items 的细化,如果有的话,按照它们在 declarative_part 中给出的顺序。
编辑: ARM的来源
推荐阅读
- python - 保存训练好的神经网络 python 3.6
- flutter - 修复 Flutter iOS 部署中的“脚本调用错误”
- java - 如何解码杰克逊的通用数据?
- reactjs - 使用 this.setState 正在改变我的事件参数值
- swift - 更改 Firebase 观察者 SWIFT 4 后函数返回
- python - 如何从索引中找到特定值?
- mysql - ORDER BY STR_TO_DATE ASC 未按预期运行
- javascript - 对 Vm2 js 的补充,可以安全地运行除 Javascript 以外的其他语言的不受信任的代码
- php - .gitignore、adminLTE 和供应商的变化,建议?
- angular - 如何在引导程序 4 中加载导航栏下拉列表内容?