Delphi 函数和过程传递参数的修饰符 var const out

0015.jpg

默认参数(传值),var(传址),out(输出),const(常量)


procedure TForm1.Button1Click(Sender: TObject);
var
    str:string;
begin
    str:='abc';
    Test1(str);
    Showmessage(str);//输出'abc123',var可理解是变量,可以修改
    
    str:='abc';
    Test2(str);//编译不能通过,const可理解是常量,不能修改
    Showmessage(str);
    
    str:='abc';
    Test3(str);
    Showmessage(str);//输出'123',out是用于返回赋值的,而对out的任何输入都会被忽略
    
    str:='abc';
    Test4(str);
    Showmessage(str);//输出'abc', 默认参数,没有修饰符
end;


procedure TForm1.Test1(var s:string); //传址
begin
    s:=s + '123';
end;

procedure TForm1.Test2(const s:string); //常量
begin
    s:=s + '123'; //这是无法编译的
end;

procedure TForm1.Test3(out s:string); //输出
begin
    s:=s + '123';
end;

procedure TForm1.Test4(s:string); //默认参数,没有修饰符
begin
    s:=s + '123'; //创建了一个新的变量s,而不会对原来的变量值做修改
end;


标签:Delphi

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://evelee.net/blog/?id=75