如何在不创建/定义x整数的情况下创建x整数数组。此示例将创建一个10整数数组(在每个元素中预先填充零):
var
IntArray : TArray<Integer>;
begin
IntArray := TArray<Integer>.Create(0,0,0,0,0,0,0,0,0,0);
end;
所以我创建了一个长整数为120的整数数组,这看起来很混乱:
IntA := TArray<Integer>.Create(
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0);
现在我需要创建一个9000个整数的数组,我不需要(或想要)用9000个零预先填充数组。
是否有如下命令:
IntA := TArray<Integer>.Array[0..9000]; //This doesn't work
感谢。
答案 0 :(得分:7)
使用SetLength
:
SetLength(IntA, N);
其中N
是您要分配的数组的长度。
procedure SetLength(var S: <string or dynamic array>; NewLength: Integer);
对于动态数组变量, SetLength 将S引用的数组重新分配给给定的长度。保留数组中的现有元素,并将新分配的空间设置为0或nil。对于多维动态数组,SetLength可能需要多个长度参数(最多为数组维数)。