gpt4 book ai didi

arrays - 创建 TPair TArray 的编译器错误

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

uses
Generics.Collections, types, rtti, System.Generics.Collections;

procedure GimmePairArray(const APairArray: TArray<TPair<string, TValue>>);
begin

end;

procedure TForm2.FormCreate(Sender: TObject);
var
_PairArray: TArray<TPair<string, TValue>>;
begin
_PairArray := TArray <TPair<string, TValue>>.Create(TPair<'"reset changes"', TValue.From<Boolean>(True)>);
GimmePairArray(_PairArray);
end;

导致编译错误:[DCC 错误] Unit2.pas(38): E2003 未声明的标识符:'TPair'我做错了什么? TPair 在 System.Generics.Collections 中声明,我在我的使用中有它。

最佳答案

首先,编译器说 TPair不存在。尽管您不相信编译器是正确的。 TPair<K, V>存在,但不存在 TPair .

编译器确实指出了问题所在。如果您指出编译失败的程序行会很有帮助,但很明显这段代码就是问题所在:

TPair<'"reset changes"', TValue.From<Boolean>(True)>

这是语法错误。你的意思是:

TPair<string, TValue>.Create('"reset changes"', TValue.From<Boolean>(True))

编译器会查看您的代码并尝试确定 < 是否符合要求。是泛型类型表达式的一部分。因为 < 右边的表达式不是它得出结论的类型 let 不是并且您的 <是小于比较运算符。当然然后它说 TPair不存在。事实并非如此,正如顶部所解释的那样。

关于arrays - 创建 TPair TArray 的编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48237962/

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