使用Create的运行时数组

use*_*758 0 arrays delphi

说我有

ArrayOfTXSDecimal = array of TXSDecimal;
Run Code Online (Sandbox Code Playgroud)

然后在运行时我做

Ids := ArrayOfTXSDecimal.create(14450);
Run Code Online (Sandbox Code Playgroud)

我刚刚创造了什么?一个数组(ids),14450索引或只是索引14450

Rem*_*eau 5

您正在创建一个动态数组,其中包含一个值为14450的元素.您正在执行以下操作:

SetLength(Ids, 1);
Ids[0] := 14450;
Run Code Online (Sandbox Code Playgroud)

Embarcadero的DocWiki记录Create()了动态数组的这种语法:

为动态数组分配内存的另一种方法是调用数组构造函数:

type
  TMyFlexibleArray = array of Integer;

begin
  MyFlexibleArray := TMyFlexibleArray.Create(1, 2, 3 {...});
end;
Run Code Online (Sandbox Code Playgroud)

它为三个元素分配内存,并为每个元素分配给定的值.

  • @ user41758:*所以,如果我再次运行*为什么你不使用调试器并找出自己?它会比在这里等待答案要快得多,而且你会在过程中学到一些关于解决问题或自己寻找答案的知识. (6认同)