Если вы сделаете
procedure show(a: array of Integer);
var
i: Integer;
begin
for i in a do
Writeln(i);
end;
, вы можете написать
show([1, 2, 3, 4]);
Этот тип параметра массива называется параметром открытого массива . Если у функции есть параметр открытого массива, вы можете дать ей как динамические c, так и массивы stati c, в дополнение к этим "буквальным массивам". Итак, учитывая нашу 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
примет только такие динамические c массивы.