Boz*_*zzy 4 delphi initialization constants record
让我们假设这些声明:
type
TMyRec = record
Name : String;
Age : Integer;
Married : Boolean;
end;
TMyRecArray = Array[0..3] of TMyRec;
const
RecArray: TMyRecArray = ((Name: 'John' ; Age: 25; Married: False),
(Name: 'Wendy'; Age: 32 ),
(Name: 'Nick' ; Married: True ),
( Age: 19; Married: False));
Run Code Online (Sandbox Code Playgroud)
最后三个数组行中未列出的记录元素是否使用默认值自动初始化?或者(可以)它们包含随机数据?
Embarcadero的docwiki没有就此发表任何官方消息.
具有默认值的记录数组常量声明可以声明为:
const
RecArray: TMyRecArray = ((),
(),
(),
());
Run Code Online (Sandbox Code Playgroud)
所以是的,省略常量声明中的记录字段将产生默认值.
不幸的是,这种行为没有记录.您必须使用调试器进行验证.Delphi的前身Turbo Pascal的工作方式几乎相同.您必须包括所有字段的值,直到最后一个非默认字段.