【Ruby】「&&」と「| |」の評価方法の違い
3468 ワード
Rubyの原点回帰をしていた時に、&&と||の評価方法がややこしかったので、評価方法の違いを備忘録として書きました。
&&(and)
A && B
AかつBが真のとき真、それ以外は偽
左辺が「真」なら → 右辺を評価し、右辺の結果を返す
左辺が「偽」なら → その時点で左辺の結果を返す(右辺をみない)
||(or)
A || B
AまたはBが真のとき真、どちらも偽のとき偽
左辺が「真」なら → その時点で左辺の結果を返す(右辺をみない)
左辺が「偽」なら → 右辺を評価し、右辺の結果を返す
例
a = []
# 左辺が「真」のときは、右辺を評価しその結果を返す
a << "apple" && false
=> false
# 左辺が「偽」のときは、左辺の結果を返す(右辺をみない)
false && a << "orange"
=> false
# 左辺が「真」のときは、左辺の結果を返す(右辺をみない)
true || a << "lemon"
=> true
# 左辺が「偽」のときは、右辺を評価しその結果を返す
false || a << "banana"
=> ["apple", "banana"]
p a
=> ["apple", "banana"]
参考
Author And Source
この問題について(【Ruby】「&&」と「| |」の評価方法の違い), 我々は、より多くの情報をここで見つけました https://zenn.dev/wakkunn/articles/f9c6e628e03e3e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Collection and Share based on the CC protocol