Ada中的= =和=之间有什么区别?

Vin*_*tDM 2 ada pass-by-reference colon-equals

据我所知,:=似乎是通过副本进行分配.运算符=>似乎执行类似的赋值,但在将参数赋值给对象的成员变量时使用.

所以...

receivesTheCopy := isBeingCopied

memberVariable => passedParameter

我正在处理其他人的旧代码,并且我有一个变量达到了一个我从未看到明确分配给它的值:=.我在想,也许当它被赋予memberVariable=>它被引用传递,从而passedParameter变呆绑在memberVariable状态.

Jac*_*sen 8

:= 是一项任务.

=> 有多个目的:

  1. 参数传递:哪个形式参数传递哪个参数(如果不按顺序完成).
  2. 记录和数组聚合:哪个字段获取哪个值.
  3. 方面:将方面名称与它们分配的表达式分开.

在任何一种情况下,它都与传递引用或传值有关.

  • 传递参数时,`=>`除了_associate_一个带参数的形式参数名称."传递"语义由参数模式和参数类型控制. (5认同)
  • Ada参数传递模式为IN,OUT,IN OUT.这些模式都不指定通过引用传递或传递值. (5认同)