在 Visual Basic 2008 中使用两个等号
在代码中,为什么这不起作用?
intMax = intTopValue = 20
In code, why wouldn't this work?
intMax = intTopValue = 20
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
在代码中,为什么这不起作用?
intMax = intTopValue = 20
In code, why wouldn't this work?
intMax = intTopValue = 20
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(1)
这被解释为
intMax = (intTopValue = 20)
。intTopValue = 20
将检查intTopValue
是否等于20
并返回 true 或 false。然后这个布尔值将被分配给
intMax
。大多数语言不存在此问题,因为它们使用单独的运算符进行赋值(
=
或:=
)和相等(==
或 <代码>=)。相比之下,VB 对于这两个操作共享
=
。因此,当a = b
写成表达式时,它总是意味着相等。This is interpreted as
intMax = (intTopValue = 20)
.intTopValue = 20
will check whetherintTopValue
is equal to20
and return true or false.This boolean will then be assigned to
intMax
.Most languages don't have this issue, since they use separate operators for assignment (
=
or:=
) and equality (==
or=
).By contrast, VB shares
=
for both operations. Therefore, whena = b
is written as an expression, it always means equality.