【发布时间】:2017-06-29 17:29:32
【问题描述】:
如何在不创建/定义 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
谢谢。
【问题讨论】:
-
我只是想知道为什么在这里使用泛型?
-
您应该始终使用动态数组的泛型形式,因为它提供与其他泛型代码的兼容性。如果您必须支持没有泛型的旧编译器,则例外情况。
-
@AntonDuzenko,通用动态数组具有宽松的类型标识规则。见What are the reasons to use TArray<T> instead of Array of T?。
标签: delphi