【发布时间】:2011-04-27 03:41:02
【问题描述】:
可能的重复:
Why doesn't Java have compound assignment versions of the conditional-and and conditional-or operators? (&&=, ||=)
Why does a “&&=” Operator not exist?
今天上班写了如下LOC(b和b1的真实身份保密:)
b &&= b1; // meaning b = b && b1;
我盯着它看了几秒钟,意识到不存在这样的运算符。可以肯定的是,我点击了编译,但它失败了。为了确定我参考了标准。
是否有没有这样的运营商的具体原因?我能想到一些:
-
由于 && 的短路评估,
b &&= b1和b = b && b1可能不等价。 - &&= 很丑
- &&= 很少需要
我并不是说拥有这样的运算符会很有用,不。我也没有声称上述三个原因中的任何一个或全部都不足以避免创建该运算符。我的问题如下:我正在监督是否有更严重的原因?
【问题讨论】:
-
b &= isSomethingWithSideEffects();无论如何都会运行该函数。但是如果将其更改为&&=大概不会在 b 为假的情况下,不是吗? -
抱歉,我不明白为什么 Dingo 的评论被点赞了。有人可以解释一下吗?
-
@John - 这是一个现已删除的建议的反例,即
&=等同于&&=(正如我的评论) -
忘记这个问题 - 我很想知道
b和b1的真实身份的秘密会给我带来什么不为人知的力量! -
@Close-Voters:请考虑不要关闭这个问题,因为潜在的重复项都涉及 Java,答案是 Java 中没有 &&= 因为 C 中没有。没有线程提供了一个令人满意的答案,我希望在这里得到。只是考虑一下。谢谢。
标签: c# c++ c logical-operators