代码之家  ›  专栏  ›  技术社区  ›  Fabrizio RAHUL S R

为什么在比较varEmpty和零值varInteger时“=”运算符的结果为真?

  •  1
  • Fabrizio RAHUL S R  · 技术社区  · 6 年前

    为什么 = True 当比较 varEmpty Variant 值为零的变量 varInteger 变种

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

    此代码生成以下输出:

    V1=V2

    = 仅检查的值部分 变种 变量?

    1 回复  |  直到 6 年前
        1
  •  7
  •   Sertac Akyuz    6 年前

    为了进行比较,将空变量转换为整数。根据 variant type conversion rules ,未分配(空)变量将转换为0。因此表达式返回true。