2017-08-29 8 views
1

は、私は次のようになりますいくつかのコードに遭遇しましたか?私は純粋にこれがブール値に評価され、eachにエラーがスローされると思いますが、明らかに何が起こっているのかはわかりません。Rubyの選言構文

答えて

5

||のセマンティクス以下のとおりです。最初の式がnilまたはfalseの場合

  • 最初の式がnilか偽でない場合は、それを
  • を返し、これがデフォルト値を提供するために使用される

二式を返します最初のものがゼロの場合。

+0

@ Mark Thomas興味深いことに、これを他のどのコンテキストで使うことができますか?もしあなたがifステートメントでそれを使ってみるとパーサを混乱させてしまうのではないでしょうか? –

+2

ruby​​では ' 'if'ステートメント –

+0

@jon_simonまた、キャッシュの割り当てにも使用します。 'foo || = []'は 'foo = foo ||と似ています。 [ちなみに[what-rubys-double-pipe-or-equals-really-does](http://www.rubyinside.com/what-rubys-double-pipe-or-equals-really参照) -does-5488.html)) –