&&とandの違い

  • 28
    Stock
  • 0
    Comment
Stock this post
  • akishin
  • rakuten_saitama
  • takecian
  • t11a
  • reizist
  • quanon86
  • kayo_h
  • blp1526
  • tchikuba
  • beyan_mstg
  • ...

優先度が違う

Ruby 2.0.0 リファレンスマニュアル > spec/operator
演算子式
まず、左辺を評価して、結果が真であった場合には右辺も評価しま す。and は同じ働きをする優先順位の低い演算子です。
and を伴う式をメソッドの引数に渡す場合は二重に括弧が必要となります。

pry
2.0.0 (main)>a = true && false
2.0.0 (main)>a
#=> false

2.0.0 (main)>b = true and false
2.0.0 (main)>b
#=> true
# ( b = true ) && false 

2.0.0 (main)>c = (true and false)
2.0.0 (main)>c
#=> false

render foo and returnとかの場合以外は&&を使うようにしています。


追記: 2013-07-16

以下のような状況で注意

pry-edit
if true and false
  puts "1: true"
else
  puts "1: false"
end
#=> 1: false


true_and_false = true and false
if true_and_false
  puts "2: true"
else
  puts "2: false"
end
#=> 2: true

追記: 2013-08-06

Contributing to Ruby on Rails — Ruby on Rails Guides
- Prefer &&/|| over and/or.

どっかで見たなーと思ったら、Rails Guidesに記述がありました。

実録!Railsのはまりポイント10選
http://www.slideshare.net/drecom/edgerails2

ここにも出てきますね。

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.