varInteger Variant 变量? var V1 : Variant; V-6ren">
gpt4 book ai didi

delphi - 为什么将 varEmpty 与零评估的 varInteger 进行比较时 "="运算符结果为 True?

转载 作者:行者123 更新时间:2023-12-02 08:20:23 24 4
gpt4 key购买 nike

当将 varEmpty Variant 变量与零评估 变量进行比较时,为什么 = 运算符结果为 True >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变量的值部分?

最佳答案

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

关于delphi - 为什么将 varEmpty 与零评估的 varInteger 进行比较时 "="运算符结果为 True?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53946069/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com