アレハンドリア:
私はこのような何かをしたいと思います:
procedure show(a : Array of Integer);
var
i : integer;
begin
for i in a do
writeln(i);
end;
begin
show((1, 2));
show((3, 2, 5));
end.
しかし、これは私が得た最も近いです
Program arrayParameter(output);
type
TMyArray = Array[0..2] of Integer;
var
arr : TMyArray = (1, 2, 3);
procedure show(a : TMyArray);
var
i : integer;
begin
for i in a do
writeln(i);
end;
begin
show(arr);
end.
だから私は、私は関数を呼び出すたびに異なる配列を宣言しなければなりませんか?作業例を提供してください。
アンドレアスRejbrand:
もしあなたがそうするなら
procedure show(a: array of Integer);
var
i: Integer;
begin
for i in a do
Writeln(i);
end;
あなたが書くことが
show([1, 2, 3, 4]);
配列パラメータのこの種のは、呼び出されたオープン配列パラメータ。関数は、オープン配列パラメータを持っている場合は、これらの「リテラルの配列」に加えて、それを両方の動的および静的配列を与えることができます。だから、私たちの与えられたshow
手順、我々も行うことができます
var
DynArr: TArray<Integer>; // = array of Integer
StaticArr: array[0..2] of Integer;
begin
show(DynArr);
show(StaticArr);
end;
ただ、比較のために:あなたの代わりに行う場合
procedure show(a: TArray<Integer>);
またはAを持っています
type
TDynIntArray = array of Integer;
そして、やります
procedure show(a: TDynIntArray);
その後show
のみ、ダイナミックアレイを受け入れます。