gpt4 book ai didi

arrays - Pascal/Delphi 动态数组作为参数

转载 作者:行者123 更新时间:2023-12-03 15:51:22 25 4
gpt4 key购买 nike

我想做这样的事情:

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.

但是this is我最接近的

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.

那么每次我想调用该函数时是否都必须声明一个不同的数组?请提供一个可行的示例。

最佳答案

如果你这样做

procedure show(a: array of Integer);
var
i: Integer;
begin
for i in a do
Writeln(i);
end;

那么你可以写

show([1, 2, 3, 4]);

这种数组参数称为 open array parameter 。如果函数具有开放数组参数,除了这些“文字数组”之外,您还可以为其提供动态和静态数组。因此,根据我们的 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 - Pascal/Delphi 动态数组作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61029937/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com