1

我了解在 Ada 中何时以及如何使用 =>,特别是在使用关键字“others”时,但我不确定它的正确名称,也不知道它是如何以及为什么创建的。Ada 的历史和发展对我来说非常有趣,我会感谢任何人对此的见解。

4

3 回答 3

2

=> 被称为箭头。它与任何形式的参数一起使用,不仅与参数“其他”一起使用。

Ada 参考手册第 6.4 节指出:

参数关联 ::= [formal_parameter_selector_name =>] 显式实际参数

显式实际参数 ::= 表达式 | 变量的名称

根据是否指定了formal_parameter_selector_name,parameter_association 被命名或定位。任何位置关联都应在任何命名关联之前。如果子程序调用中的前缀是属性引用,则不允许命名关联。

同样,数组聚合在 4.3.3 节中描述

array_aggregate ::= positional_array_aggregate | 命名数组聚合

positional_array_aggregate ::= (表达式, 表达式 {, 表达式}) | (表达式 {, 表达式}, 其他 => 表达式) | (表达式 {, 表达式}, 其他 => <>)

named_array_aggregate ::= (array_component_association {, array_component_association})

array_component_association ::= 离散选择列表 => 表达式 | 离散选择列表 => <>

箭头用于将数组索引与特定值相关联,或将子程序的形参名称与实际参数相关联。

于 2019-03-09T05:10:30.220 回答
2

Stack Overflow 并不是真正适合这类问题的地方,这就是为什么它至少获得了一次接近投票的原因。

也就是说,“箭头”从第一个版本开始就出现在该语言中。见ARM83 2.2。另见Ada 83 基本原理第 3.5 节似乎是第一个实际使用它的地方,尽管不是按名称。

于 2019-03-09T08:44:28.307 回答
0

作为对 Jim 回答的补充,在使用/直观方面:箭头X => A在 Ada 语法的各个位置表示:值 A 转到位置 X。例如,用任意单元格顺序填充数组是非常实用的。有关具有大型阵列的应用程序,请参见本演示文稿的幻灯片 8 。不用说,在这种情况下,没有箭头符号会导致一堆错误。有时它只是有助于使关联更具可读性。您可以在此处看到它在设计游戏关卡时的实际效果。

于 2019-03-10T11:27:46.097 回答