gpt4 book ai didi

arrays - 用 TArray 替换 XXX 数组是否安全

转载 作者:行者123 更新时间:2023-12-03 14:37:46 24 4
gpt4 key购买 nike

我有很多变量声明为

var
Something: array of XXX;
begin
SetLength(Something, 10);
try
...
finally
SetLength(Something, 0);
end;
end;

在多大程度上更换它们是安全的:

var
Something: TArray<XXX>;
begin
SetLength(Something, 10);
try
...
finally
SetLength(Something, 0);
end;
end;

最佳答案

正如已经回答的那样,TArray<XXX>与定义为 array of XXX 的任何其他自定义类型完全相同。事实上,TArray<XXX> 定义为 array of XXX 的自定义类型.

也就是说,自定义类型定义为 array of XXX 等于array of XXX在过程或函数参数的上下文中。在 procedure Foo(x: array of Integer) , xopen array parameter ,它可以接受任何类型的整数数组。相比之下,procedure Foo(x: TArray<Integer>)需要一个实际的 TArray<Integer>仅键入。您可以在尝试传递固定大小的数组时看到差异,也可以在尝试传递 TDynIntegerArray 时看到差异。 (另一种类型,也定义为 array of Integer )。

所以,对于变量,当然,如果你有 array of XXX ,将其更改为 TArray<XXX>所有你想要的。只要确保您没有进行全局搜索和替换即可。

关于arrays - 用 TArray<XXX> 替换 XXX 数组是否安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23374157/

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