gpt4 book ai didi

vbscript - VBScript 中整数和字符串比较冲突

转载 作者:行者123 更新时间:2023-12-02 19:56:16 28 4
gpt4 key购买 nike

尝试在 HP-UFT 中运行时,下面的 VBScript 代码让我感到困惑,因为第一个语句打印 True 而不是 False (这似乎不合逻辑),而第二个打印 False (这似乎合乎逻辑)

代码:

print 40 = "40"

a = 40
b = "40"
print a = b

输出:

True
False

最佳答案

这完全符合逻辑(),VBScript 中只有一种数据类型,那就是 Variant。不过,VBScript 可以处理 Variant 数据类型的许多不同子类型。

当你比较时

40 = "40"

VBScript 正在将 String 子类型隐式转换为 Integer 子类型,并比较结果,这与执行以下显式转换相同;

40 = CInt("40")

如果您已经定义了变体,但是 VBScript 仅在执行上下文适合时尝试隐式转换它们(当它适合时有点模糊,在某些情况下是一个直接的错误 - 请参阅 Ref ).

为避免这种情况,请在必要时使用显式转换。

a = CInt(b)
<小时/>

有用的链接

关于vbscript - VBScript 中整数和字符串比较冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40465831/

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