Delphi中能否依赖Default()将记录的string字段初始化为空串?
问题解答
可以确保该记录的FName字段为空字符串,具体原因如下:
- 构造函数里的
Self := Default(TRec);是核心操作:Default关键字会把记录的所有字段都初始化为对应类型的默认值。 - 在Delphi中,
string类型的默认值就是空字符串(''),integer类型的默认值为0。 - 后续代码只修改了
FNr字段的值为传入的ANr,完全没碰FName,所以它会保持Default(TRec)赋予的空字符串状态。
补充说明:你提到的“记录的默认构造函数不会初始化内存”是个误解——这里的Default操作和默认构造函数不是同一个概念,Default是显式地将记录所有字段置为类型默认值,这个行为是确定的,和记录有没有自定义构造函数无关。
内容的提问来源于stack exchange,提问作者Anders G
相关产品推荐
相关产品推荐

