gpt4 book ai didi

delphi - 从开放数组参数到TArray <>的类型转换

转载 作者:行者123 更新时间:2023-12-03 18:30:01 25 4
gpt4 key购买 nike

检查以下代码:

function A(const points: TArray<TPoint>): Boolean;
begin
//Something
end;

procedure B(var pts: array of TPoint)
begin
A(pts); //Compiler error E2010 Incompatible types
end;


它产生一个编译器错误:

E2010不兼容的类型:“ System.TArray”和“ TPoint数组”

调用 A(TArray<>(pts));不起作用。我解决问题

A(TArray<TPoint>(@pts));


将开放数组参数类型转换为TArray <>的正确方法吗?还有其他办法吗?

请假定两个功能的参数类型均不可更改。

最佳答案

您无法执行这种类型转换。开放数组不是动态数组。您的选择包括:


对两个过程都使用动态数组。
对两个过程都使用开放数组。
将打开数组的内容复制到动态数组,然后传递它。


我要指出的是,复制是昂贵的,原则上我会拒绝该选择。

关于delphi - 从开放数组参数到TArray <>的类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50585510/

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