为什么在比较 varEmpty 和零值 varInteger 时"="运算符结果为 True?



为什么在比较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。

相关内容

最新更新