Есть ли хорошее применение для логических (логических) операторов без короткого замыкания в 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

Ответы на вопрос(4)

Ваш ответ на вопрос