在这种情况下,为什么1 = 1不正确?

Dan*_*iel 3 vba

就我而言,这没有任何价值.我在研究问题时发现了这一点.

在VBA中:

鉴于以下内容: Dim a As Boolean, b As Boolean, c As Boolean

代码将a = b = c = 1 = 1 a赋值为False.

但是a = b = c = true指定了一个真实的.

任何人都可以解释为什么会这样吗?显然1 = 1评估为真.

作为旁注,a = 1 = 1也会将a指定为true.此外,使用变体而不是布尔值的行为是相同的.

我再次知道这没有实际意义,我只是好奇是否有人可以解释这种行为.

Pet*_*one 6

表达式从左到右计算,因为所有运算符具有相同的优先级.

a = b = c = 1 = 1
Run Code Online (Sandbox Code Playgroud)

b = c返回True.

True = 1返回False,因为True在比较之前转换为-1.

False = 1返回False

a = b = c = true 
Run Code Online (Sandbox Code Playgroud)

b = c返回True

True = true返回True.