Ruby勉強中の者です。
nilとfalseだけがfalse、あとは全てtrueになるのは理解しました。
ですが、なぜ下の結果になるのか分からず悩んでいます。
ruby
ary = [] ary << 1 && false p 1 && false # falseが出力される p ary[0] # falseが出力されると期待したが、1が出力される p ary # [1]が出力される
最初の
1 && false
の出力結果は、falseです。
であれば、
次の
ary[0]
も、同じくfalseが出力されると期待したのですが、なぜここは1になるのでしょうか?
●追記します
状況について補足
Ruby Silver試験の過去問を勉強してました。
以下のような問題があり、1つずつ実行して結果を確認してたところです。
ruby
問題29. 以下のコードを実行したときの出力として適切な物を1つ選択してください。 ary = [] ary << 1 && false true || ary << 2 false && ary << 3 false || ary << 4 p ary A. [1, 4] B. [1, 2, 3, 4] C. [1] D. [1, 2, 3]
状況がよく判りませんが、(ary << 1) && false と ary << (1 && false) の違いについての話なのでしょうか?
状況といいますか背景を追記致しました。
1つずつ実行して確認してた所、予想と違って分からなくなっていました。
演算子の優先順位に関しては以下のドキュメントの Ruby Operators Precedence の項を参照して下さい。
Ruby - Operators
https://www.tutorialspoint.com/ruby/ruby_operators.htm
URL有難う御座います!!
まったく理解してませんでした!
まだ回答がついていません
会員登録して回答してみよう