1

オプションのパラメータとして動的配列を関数またはプロシージャに渡すことは可能ですか? はいの場合、どのように?

私はこの方法で試しました:

procedure testp (str : string; var arr : StringArray = nil);
begin
    str := 'Ciao Alessio !';
    SetLength(arr, 2);
    arr[0] := 'Ale';
    arr[1] := 'Ale';
end;

しかし、それは : を与えますdefault parameter 'arr' must be by-value or const

Delphi 7 を使用していますが、Delphi 7 で使用できない場合、新しいバージョンの Delphi または Free Pascal で使用できますか?

4

2 に答える 2

4

デフォルト パラメーターは、const または値パラメーターによってのみ指定できます。var パラメータには指定できません。

探している呼び出し元の柔軟性を実現するには、オーバーロードを使用する必要があります。

procedure foo(var arr: StringArray); overload;
begin
  .... do stuff
end;

procedure foo; overload;
var
  arr: StringArray;
begin
  foo(arr);
end;
于 2013-10-10T14:06:58.920 に答える