通過結果調用示例
回答
我只是自己做的。
僞
begin
integer n;
procedure p(k: integer);
begin
n := n+1;
k := k+4;
print(n);
end;
n := 0;
p(n);
print(n);
end;
實現使用Ada語言
call.adb
with Gnat.Io; use Gnat.Io;
procedure call is
x : Integer;
Procedure NonSense (A: in out integer) is
begin
x := x + 1;
A := A + 4;
Put(x);
end NonSense;
begin
x := 0;
NonSense (x);
Put(" ");
Put(x);
New_Line;
end call;
由於阿達使用呼叫逐結果的方式,結果應該是1 4。 (可以通過將此代碼輸入到在線Ada編譯器「http://www.tutorialspoint.com/compile_ada_online.php」進行檢查)
而且,其他結果施加不同的通參數類型應該是...由值
呼叫:1個1
呼叫通過引用:5 5
(比較>呼叫由值結果:1 4)
請記住,Ada中的參數傳遞方法取決於類型。整數類型通過複製傳遞,而(例如)標記類型通過引用傳遞。對於某些類型,選擇取決於編譯器實現者。 –
理想情況下,Ada編譯器會拒絕編譯此代碼,理由是這是一個等待發生的錯誤。 –
LRM 6.2中提供了一個可能的提示:「如果某個對象是未指定參數傳遞機制的類型,並且不是明確的別名參數,則通過一個訪問權限分配給該對象是一個有界錯誤路徑,然後通過不同的訪問路徑讀取對象的值「。如果您確實需要指針,請使用指針。然而,在編寫Ada時,最好忘記通過機制來支持IN,IN OUT和OUT。 – B98
- 1. Aidl結果通過回調
- 2. 通過使用jquery ajax調用servlet在jsp中顯示結果?
- 3. 通過快速連續的AJAX調用顯示結果
- 4. 通過示例
- 5. 通過示例
- 6. 通過示例的ESB調解
- 7. 顯示2分的結果通過DIV
- 8. ngspice結果顯示通過PHP
- 9. 通過函數顯示結果
- 10. 通過PHP顯示MYSQL結果的值
- 11. 通過:使用示例
- 12. 結果通過DESC
- 13. 結果通過NSTask
- 14. SQL結果通過
- 15. Django Tastypie:通過遍歷model.objects.all()來過濾GET調用的結果
- 16. 調用存儲過程並在delphi中獲得結果的示例
- 17. 通過JOIN過濾結果
- 18. MySQL - 通過算術/函數調用結果在兩列中排序結果
- 19. 什麼是通過引用調用函數的示例?
- 20. Swift iOS:通過UISearchBar查找解析用戶,並通過顯示編組結果查看錶結果
- 21. MySQL的 - 通過結果
- 22. 通過extjs結果解析
- 23. 迭代通過JSOn結果
- 24. 如何通過結果
- 25. 通過NSFetchRequest循環結果
- 26. 計數結果通過
- 27. 循環通過xml結果
- 28. 結果通過模型
- 29. 通過mysqli結果循環
- 30. 通過AJAX結果Vis DataSet
據我在Ada中看到的,術語「按結果調用」幾乎從來沒有使用過,想到參數傳遞模式要容易得多 - 比如說說你想要發生什麼,而不是你想要如何發生發生。具體來說,查找使用'OUT'參數的任何代碼,(不是'IN OUT',它將對應於按值調用的結果)。 –
「呼叫結果」是什麼意思?它是一個參數傳遞方法嗎? –
[This answer](http://stackoverflow.com/a/3004067/40851)解釋'in out',正如@BrianDrummond所說,對應於按值調用的結果。你也許可以從中推斷出對結果的呼叫(即Ada'out')。 –