仅仅是偶然的机会,我发现这样的语法结构实际上能够编译并且产生所期望的结果:
var
Arr: TArray<Integer>;
begin
Arr := TArray<Integer>.Create(100, 101, 102);
end;
我只在 Delphi XE 中进行了测试,但它可能也适用于旧版本。这个有文档记录吗?
该内容记录在语言指南中。
这是以下代码的通用版本,可以在 Delphi 2007 及以后的版本中使用:
type
TIntArray = array of Integer;
var
MyIntArray: TIntArray;
begin
MyIntArray := TIntArray.Create(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
...
end;
现在终于有一种解决方案,可以在不知道数组大小的情况下初始化数组了。
TArray<T>
在System.pas
中声明为array of <T>
。Generics.Collection
声明了TArray
,它提供了一些通用的类方法来进行搜索和排序。 - Uwe Raabe