gpt4 book ai didi

arrays - 是否可能:记录中的数组

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

我有下一个数组

NAMES1: array[0..1] of string = ('NO1','NAME1');
NAMES2: array[0..1] of string = ('NO2','NAME2');


和记录结构

TMyRec = record(
Name: ????;
);


结果,我需要声明一个恒定的记录数组,如下所示

const
StringArraysList: array[0..1] of TMyRec = (
(Name: NAMES1),
(Name: NAMES2)
);


问题是我应该为TMyRec中的名称选择哪种类型?

最佳答案

您需要这样做:

type
TTwoNames = array[0..1] of string;

TMyRec = record
Names: TTwoNames;
end;

const
StringArraysList: array[0..1] of TMyRec = (
(Names: ('NO1','NAME1')),
(Names: ('NO2','NAME2'))
);




您希望将最终声明写为

const
NAMES1: TTwoNames = ('NO1','NAME1');
NAMES2: TTwoNames = ('NO2','NAME2');

StringArraysList: array[0..1] of TMyRec = (
(Names: NAMES1),
(Names: NAMES2)
);


但这导致


[DCC错误] Unit1.pas(38):E2026预期为常数表达式


一些Delphi常量不如您希望的那样常量!

record constants的文档指出:


这些值必须用常量表达式表示。


typed constants的文档指出:


类型常量不能出现在常量表达式中。


将这两个规则放在一起,我们有 E2026

关于arrays - 是否可能:记录中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7606597/

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