1

私はこれが意味することを知っています

 true || false
 => true

しかし先日、誤って 1 本の縦線を代わりに使用してしまい、コードがまだ機能していることに気付きました。

true | false
=> true

false | false
=> false

これらの違いは何ですか | と ||? それらは同等ですか?

4

3 に答える 3

3

| | ビットごとの OR 演算子です。|| 論理 OR 演算子です。

両方の演算子の説明については、http ://www.tutorialspoint.com/ruby/ruby_operators.htm を参照してください。

于 2013-10-23T16:47:18.810 に答える
2

|ビットごとのOR演算子です。 ||論理 ORです。

あなたが示したように使用した場合の主な違いは、||短絡し、左側が真の場合に右側を評価しないことです。を使用|すると、常に両側が評価されます。

この場合、それは問題にならない可能性がありますが、演算子の両側の計算にコストがかかる場合は、||より効率的です。

そのため、論理テスト (つまり、「if」) を実行する場合は、ほとんどの場合、これを使用||することをお勧めします。これにより、意図がより明確に表現され、より効率的になる可能性があります。

演算子は、|ビット操作を直接行う場合により便利であり、実際には通常、これらのシナリオにのみ適しています。

于 2013-10-23T16:49:31.273 に答える