我最近發現Java(和Scala)包括非短路邏輯運算符&
,|
和^
。我以前認爲這些只能用作按位運算符。雖然也許有關於^
的爭論,但我想不出使用非短路邏輯運算符的非常好的理由 - 儘管我很確定,我可以設想一個例子。Java/Scala中的非短路邏輯(布爾)運算符有很好的用處嗎?
這些操作符是否有用?他們似乎更容易造成難以捉摸的錯誤。
scala> def foo = {
| println("foo")
| true
| }
foo: Boolean
scala> def bar = {
| println("bar")
| true
| }
bar: Boolean
scala> foo || bar
foo
res5: Boolean = true
scala> foo | bar
foo
bar
res6: Boolean = true
不,位運算符只能用於按位運算,恕我直言: – 2012-03-02 21:41:39
這個問題唯一可能的答案是「非短路運算符在不想短路時非常有用」的具體示例。所以真正的問題是「你什麼時候不想短路」? – 2012-03-02 22:48:35