1
如果我將一個變量作爲常量傳遞,它會自動通過引用傳遞?如果一個變量作爲常量傳遞,它會通過引用傳遞?
procedure foo(const x : integer)
我可以參考已經傳遞變量是這樣的:
procedure foo(var y : integer);
理想我想要的東西像下面的代碼:
procedure foo(const var z : integer)
如果我將一個變量作爲常量傳遞,它會自動通過引用傳遞?如果一個變量作爲常量傳遞,它會通過引用傳遞?
procedure foo(const x : integer)
我可以參考已經傳遞變量是這樣的:
procedure foo(var y : integer);
理想我想要的東西像下面的代碼:
procedure foo(const var z : integer)
const
不保證該值實際上是通過引用傳遞的。
的Free Pascal支持
procedure foo(constref z : integer);
爲此,Z爲總是在這種情況下引用傳遞。我不知道其他pascal編譯器中有類似的東西。
出於好奇,最近的Delphi編譯器(自Delphi XE4以來)使用['[Ref]'](http://docwiki.embarcadero.com/RADStudio/XE4/en/Parameters_%28Delphi%29#Constant_Parameters)裝飾器爲了這。你可以在那裏寫信'程序foo(const [Ref] Z:Integer);'。 – TLama 2014-12-12 03:59:38