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