【发布时间】:2013-04-27 02:51:37
【问题描述】:
尽管 Delphi 参考资料说什么
结构化类型可以包含其他结构化类型;一个类型可以有无限的结构层次
除了结构化类型常量之外,还有一个明显的例外
不能包含任何级别的文件类型值
我发现我不能将记录常量用作相同类型的数组常量的元素。
测试用例
type
MyRecord = record MyField: Integer end;
const
Typical: array[0..1] of MyRecord = ((MyField: 0), (MyField: 1));
{ now I tried to achieve more clarity by declaring a specific constant }
Zero: MyRecord = (MyField: 0);
{ and compiler refused to accept that }
Bad: array[0..1] of MyRecord = (Zero, (MyField: 1)); { E2029 '(' expected but identifier 'Zero' found }
我用几个 Borland 编译器测试了这段代码,它们都表现出相同的行为。 UPD:FPC 也一样,但 GPC(!) 不一样。
问题
这里发生了什么?我对问题标题中的“不支持嵌套结构化类型的嵌套常量”的结论是否正确?再分析一个问题吗?
【问题讨论】: