[英]Pascal/Delphi dynamic array as argument
我想做這樣的事情:
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.
那么每次我想調用 function 時,我是否必須聲明一個不同的數組? 請提供一個工作示例。
如果你這樣做
procedure show(a: array of Integer);
var
i: Integer;
begin
for i in a do
Writeln(i);
end;
那么你可以寫
show([1, 2, 3, 4]);
這種數組參數稱為開放數組參數。 如果 function 有一個開放數組參數,除了這些“文字數組”之外,您還可以給它動態和 static arrays。 所以,鑒於我們的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>);
或有一個
type
TDynIntArray = array of Integer;
做
procedure show(a: TDynIntArray);
那么show
將只接受這樣的動態 arrays。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.