程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi 函數參數修飾中的var 、out和const,varconst

Delphi 函數參數修飾中的var 、out和const,varconst

編輯:Delphi

Delphi 函數參數修飾中的var 、out和const,varconst


(1)var修飾符

添加var 是地址傳遞,會修改原有的變量

var

s: string;

begin

S := 'Hello';

ChangeSVar(s);

ShowMessage(S);

end;

// ChangeSVar 定義

procedure TForm1.ChangeSVar(var A: string);

begin

A := A + 'World';

end;

以上會輸出Hello World,因為是傳址,修改的是原來的A

(2)無任何修飾符

var

s: string;

begin

S := 'Hello';

ChangeS(s);

ShowMessage(S);

end;

// ChangeS定義

procedure TForm1.ChangeS(A: string);

begin

A := A + 'World';

end;

以上會輸出Hello,因為方法ChangeS其實是創建了一個新的A,而輸出的還是原來的A,值並沒有改變

(3)out修飾符

var

s: string;

begin

S := 'Hello';

ChangeSOut(s);// 此時S的值是'Hello,'而非'Hello,World'!,在過程Hello中的S的原始值被丟棄了

ShowMessage(S);

end;

// ChangeSOut定義

procedure TForm1.ChangeSOut(out A: string);

begin

A := A + 'World';

end;

以上會輸出World,out僅僅接受返回的值,對out的任何輸入都會被忽略。同時out傳遞給過程的實際參數不必進行初始化,比如對ChangeSOut的調用:

Var

Tmp: string;

Begin

ChangeSOut(Tmp);//編譯也可以通過

End;

(4)Const修飾符

Const修飾的參數傳入之後不允許修改

如果在過程中修改參數會報錯,比如:

Procedure xxxx.TestConst(const A: String);

Begin

A := ’ss’; //企圖修改const修改的參數,會報錯

End;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved