为什么在比较varEmpty
Variant
变量与零 evalue varInteger
Variant
变量时,=
运算符的结果True
?
var
V1 : Variant;
V2 : Variant;
begin
V2 := 0;
if(V1 = V2)
then ShowMessage('V1 = V2')
else ShowMessage('V1 <> V2');
end;
此代码生成以下输出:
V1 = V2
相等运算符是否=
只检查Variant
变量的值部分?
为了进行比较,空变量被转换为整数。根据变型类型转换规则,未分配(空)变型转换为 0。因此,表达式返回 true。