我很好奇为什么我们通常在两个布尔值之间使用逻辑或||
而不是位或|
,尽管它们都能正常工作。
我的意思是,看看下面这个例子:
if(true | true) // pass
if(true | false) // pass
if(false | true) // pass
if(false | false) // no pass
if(true || true) // pass
if(true || false) // pass
if(false || true) // pass
if(false || false) // no pass
我们可以使用|
代替||
吗?同样的,&
和&&
也一样。
||
和&&
是短路求值,而|
和&
则是急切求值。 - Hovercraft Full Of Eels&&
和||
,但从未见过&
和|
。如果你要做一些依赖副作用的事情,我不明白为什么会使用类似(a & b | c)
这样的表达式,因为很容易想到“我可以通过使用短路版本来优化这个表达式”。 - Mike Bailey