ale*_*oot 1 arrays delphi delphi-7 dynamic-arrays
是否可以将动态数组作为可选参数传递给函数或过程?如果是,怎么办?
我已经尝试过这种方式:
procedure testp (str : string; var arr : StringArray = nil);
begin
str := 'Ciao Alessio !';
SetLength(arr, 2);
arr[0] := 'Ale';
arr[1] := 'Ale';
end;
Run Code Online (Sandbox Code Playgroud)
但它给出了:default parameter 'arr' must be by-value or const。
我正在使用 Delphi 7,但如果 Delphi 7 无法使用,那么更新版本的 Delphi 或 Free Pascal 是否可以?
只能为 const 或按值参数指定默认参数。不能为 var 参数指定它们。
为了实现您正在寻找的调用者灵活性,您需要使用重载。
procedure foo(var arr: StringArray); overload;
begin
.... do stuff
end;
procedure foo; overload;
var
arr: StringArray;
begin
foo(arr);
end;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3734 次 |
| 最近记录: |