2017-07-13 54 views
1

據我所知,:=似乎通過複製進行分配。運算符=>似乎執行了類似的分配,但在將參數分配給對象的成員變量時使用。Ada中的=和=>有什麼區別?

所以......

receivesTheCopy := isBeingCopied

memberVariable => passedParameter

我正在別人的舊代碼,我有一個變量達到一個值,我從來沒有看到明確分配給它:=。我認爲也許是當它被分配到memberVariable=>它通過引用,因此passedParameter變量保持綁定到memberVariable狀態。

回答

6

:=是一項任務。

=>可謂一舉多得:

  1. 參數傳遞:哪些形式參數傳遞哪個參數(如果它不是由順序進行)。
  2. 記錄和數組聚合:哪個字段獲取哪個值。
  3. 方面:將方面名稱與它們分配的表達式分開。

在任何情況下,它都與通過引用或傳遞值有關。

+0

您好@JacobSparreAndersen, 當您提到:「參數傳遞:哪個形式參數傳遞哪個參數」 不會是通過引用或傳遞值? – VincentDM

+5

當傳遞參數時,'=>'只不過是用參數_associate_形式參數名稱。 「傳遞」語義由參數模式和參數類型決定。 –

+5

Ada參數傳遞模式是IN,OUT,IN OUT。這些模式都沒有指定按引用傳遞或按值傳遞。 –

相關問題