簡體   English   中英

Pascal/Delphi 動態數組作為參數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM