![]() |
1
188
这个
换句话说,对于
逻辑运算符之间的区别(
回到你最初的问题,是的,这个结构是有效的,而
有些情况下,需要短路,甚至需要短路,但您的场景不是其中之一。
不幸的是,与其他语言不同,Java没有。
|
![]() |
2
16
它不是一个“快捷方式”(或短路)操作员,就像和&那样(因为如果他们已经知道基于lhs的结果,他们不会评估rhs),但它将按照您的要求执行 工作 .
作为区别的一个例子,如果
然而,这不会:
(显然你可以
|
![]() |
3
3
你只要一句话。它在多行上表示,读起来几乎与您的示例代码完全相同,只是命令性较低:
对于最简单的表达式,使用
|
![]() |
4
1
尽管这可能会对你的问题造成过度伤害,
Guava
图书馆有一些很好的语法
本质上,比较被转换成对象,打包成一个集合,然后迭代。对于或谓词,第一个真正命中从迭代返回,反之亦然。 |
![]() |
5
1
如果是关于可读性的话,我已经有了将测试数据与测试逻辑分离的概念。代码示例:
这段代码看起来更冗长,也更容易解释。甚至可以在方法调用中创建数组,如下所示:
它比“比较字符串”更可读,而且还具有短路的性能优势(以数组分配和方法调用为代价)。 编辑: 使用varargs参数可以简单地实现更高的可读性: 方法签名为:
电话看起来是这样的:
|
![]() |
6
1
这是一篇老文章,但为了给初学者提供一个不同的视角,我想举个例子。
我认为类似复合运算符最常见的用例是
这有什么意义?重点是避免样板文件和消除重复的代码。
所以,下一行的操作完全相同,避免键入变量
|
![]() |
7
0
|
![]() |
8
0
||逻辑布尔或
|=按位包含或与赋值运算符 =不短路的原因是它执行的是位或非逻辑或。 这就是说: C |= 2 is same as C = C | 2 |