在将varEmpty与值为零的varInteger比较时,为什么“ =”运算符的结果为True?

时间:2018-12-27 13:42:18

标签: delphi operators delphi-2007 variant

= True变量与值为零的varEmpty Variant变量进行比较时,为什么varInteger运算符会得出Variant

var
  V1 : Variant;
  V2 : Variant;
begin
  V2 := 0;
  if(V1 = V2)
  then ShowMessage('V1 = V2')
  else ShowMessage('V1 <> V2');
end;

此代码产生以下输出:

  

V1 = V2

等于运算符=仅检查Variant变量的值部分吗?

1 个答案:

答案 0 :(得分:8)

为了进行比较,将空变体转换为整数。根据{{​​3}},未分配的(空)变量将转换为0。因此表达式返回true。