【发布时间】:2012-03-25 23:46:42
【问题描述】:
只是为了好奇,
为什么在 Delphi 中,如果我们通过以下方式定义一个空字符:
a:Char;
a:='';
我们得到一个错误:不兼容的类型:'Char' and 'string'
但是,如果我们放置
a:='a';
会好吗?
是否需要通过a:=#0定义一个空字符?
【问题讨论】:
-
在 .net 世界中,您可能有一个“空”字符,因为它们具有 Nullable 类型(通过它们的泛型系统)。在数据库世界中,数据库字段可以为 Nullable,但所有 Delphi
Ordinal类型,包括Integer、Char、Byte等等,虽然它们可能有一些标记(标志)或零值( #0) 对于 Char,例如,不能为“空”或“空”。由于字符串和数组不是 Ordinal 类型,因此规则是不同的。字符串就像一个“动态字符数组”。 -
您对
''常量表达式感到困惑。它属于string类型,与char类型不兼容。相反'a'是兼容的。因此,您必须定义“空字符”约定。