Delphi里参数修饰符const、var、out的作用分别是什么?

5bug 2018-01-01 30人围观 ,发现0个评论 Delphi修饰符

Delphi里参数修饰符可以使用const、var、out,但这三个的区别是什么呢?可以参考下面的说明:


const修饰符

示例代码:

procedure TForm7.TestVar(const A: string);
begin
  A := A + 'Test';
end;

以上代码编译则会报错的,无法执行!因为加了const修饰符是不允许修改变量值的。


var修饰符

示例代码:

procedure TForm7.Button1Click(Sender: TObject);
var
  S: string;
begin
  S := 'Delphi';
  TestVar(S);
  ShowMessage(S);
end;

procedure TForm7.TestVar(var A: string);
begin
  A := A + 'Test';
end;

以上代码执行后会显示出DelphiTest,因为var修饰是地址传递,会修改原有的变量值


out修饰符

示例代码:

procedure TForm7.Button1Click(Sender: TObject);
var
  S: string;
begin
  S := 'Delphi';
  TestVar(S);
  ShowMessage(S);
end;

procedure TForm7.TestVar(out A: string);
begin
  A := A + 'Test';
end;

以上会输出Test,因为out是用于返回赋值的,而对out的任何输入都会被忽略。out参数不需要进行初始化。


无任何修饰符

示例代码:

procedure TForm7.Button1Click(Sender: TObject);
var
  S: string;
begin
  S := 'Delphi';
  TestVar(S);
  ShowMessage(S);
end;

procedure TForm7.TestVar(A: string);
begin
  A := A + 'Test';
end;

以上会输出Delphi,因为方法TestVar其实是创建了一个新的变量A,而不会对原来的变量值做修改。

请扫码加入QQ群
微信二维码
不容错过
Powered By Z-BlogPHP