gpt4 book ai didi

delphi - 如何最好地将记录添加到TArray

转载 作者:行者123 更新时间:2023-12-03 19:13:05 27 4
gpt4 key购买 nike

在编写测试程序时,我遇到了以下示例代码:

var MyData: TArray<TDataRec>;

procedure AppendData(AItem: TOrderByCustomer);
var i: Integer;
tmp: TArray<TOrderByCustomer>;
begin
SetLength(tmp, Length(MyData)+1);
for i:=0 to High(MyData) do
tmp[i]:=MyData[i];

tmp[Length(tmp)-1]:=AItem;
MyData:=tmp;
end;


过去,我仅使用SetLength()来更改实际数组的长度。为什么此示例的作者创建了一个临时数组,然后将所有值分配给它,然后将其复制回原始数组?是否有充分的理由,或者他只是很奇怪?

最佳答案

此代码没有充分的理由。它引入了不必要复制的潜在开销。该函数应这样写:

procedure AppendData(const AItem: TOrderByCustomer);
var
N: Integer;
begin
N := Length(MyData);
SetLength(MyData, N + 1);
MyData[N] := AItem;
end;

关于delphi - 如何最好地将记录添加到TArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51846137/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com