私はこれが意味することを知っています
true || false
=> true
しかし先日、誤って 1 本の縦線を代わりに使用してしまい、コードがまだ機能していることに気付きました。
true | false
=> true
false | false
=> false
これらの違いは何ですか | と ||? それらは同等ですか?
私はこれが意味することを知っています
true || false
=> true
しかし先日、誤って 1 本の縦線を代わりに使用してしまい、コードがまだ機能していることに気付きました。
true | false
=> true
false | false
=> false
これらの違いは何ですか | と ||? それらは同等ですか?
| | ビットごとの OR 演算子です。|| 論理 OR 演算子です。
両方の演算子の説明については、http ://www.tutorialspoint.com/ruby/ruby_operators.htm を参照してください。
|
ビットごとのOR演算子です。 ||
は論理 ORです。
あなたが示したように使用した場合の主な違いは、||
短絡し、左側が真の場合に右側を評価しないことです。を使用|
すると、常に両側が評価されます。
この場合、それは問題にならない可能性がありますが、演算子の両側の計算にコストがかかる場合は、||
より効率的です。
そのため、論理テスト (つまり、「if」) を実行する場合は、ほとんどの場合、これを使用||
することをお勧めします。これにより、意図がより明確に表現され、より効率的になる可能性があります。
演算子は、|
ビット操作を直接行う場合により便利であり、実際には通常、これらのシナリオにのみ適しています。