TArray <T> .Create()在某处记录了吗?

Uwe*_*abe 11 arrays delphi generics

当我发现像这样的构造实际编译并产生所需结果时,这只是偶然的机会:

var
  Arr: TArray<Integer>;
begin
  Arr := TArray<Integer>.Create(100, 101, 102);
end;
Run Code Online (Sandbox Code Playgroud)

我只在Delphi XE中测试过它,但它也可以在旧版本中使用.这是在某处记录的吗?

Dav*_*nan 13

它已在语言指南中记录.

  • 啊,好吧,这就是你所说的。我以为你说的不仅仅是一个简短的例子和那一行作为解释。我想它是文档,只是最简单的类型,实际上并没有比问题中陈述的更进一步。不过,这很公平,因为它在技术上是“记录在案的”。 (2认同)

Ken*_*ite 10

它是以下的通用版本,可以追溯到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;
Run Code Online (Sandbox Code Playgroud)

它最终是一个能够在不知道大小的情况下初始化数组的解决方案.