我了解何时以及如何在Ada中使用=>,特别是在使用关键字“其他”时,但我不确定其适当的名称以及如何以及为什么创建它。 Ada的历史和发展对我来说非常有趣,任何人对此的见识,我将不胜感激。
答案 0 :(得分:2)
=>称为箭头。它可与任何形式的参数一起使用,而不仅与参数“其他”一起使用。
Ada参考手册的6.4节规定:
parameter_association :: = [formal_parameter_selector_name =>] explicit_actual_parameter
explicit_actual_parameter :: =表达式| variable_name
parameter_association的名称或位置取决于是否 未指定formal_parameter_selector_name。任何位置 关联应在任何命名的关联之前。命名协会 如果子程序调用中的前缀为 attribute_reference。
类似地,数组聚合在第4.3.3节中描述
array_aggregate :: = positional_array_aggregate | named_array_aggregate
positional_array_aggregate :: = (表达式,表达式{,表达式})| (表达式{,expression},其他=> expression)| (表达式{,expression}, 其他=> <>)
named_array_aggregate :: = (array_component_association {,array_component_association})
array_component_association :: = 离散选择列表=>表达式|离散的选择列表=> <>
箭头用于将数组索引与特定值相关联,或将子程序的形式参数名称与实际参数相关联。
答案 1 :(得分:2)
堆栈溢出实际上并不是解决此类问题的地方,这就是为什么它至少获得了一次密切的投票。
也就是说,“箭头”自该语言的第一个版本以来就出现了;参见ARM83 2.2。另请参见Ada 83 Rationale; section 3.5似乎是第一个实际使用的地方,尽管不是按名称。
答案 2 :(得分:0)
作为Jim答案的补充,在用法/直观性方面:箭头X => A
表示Ada语法的不同位置:值A移至X。例如,填充具有任意单元格顺序的数组。有关具有大型数组的应用程序,请参见this presentation的幻灯片8。不用说,在这种情况下,缺少箭头符号会导致大量错误。有时,它对于使关联更具可读性很有用。您可以在here中看到它在设计游戏关卡时的作用。