< Ruby > &、&&、I、||について
以前の投稿を手直し
&
集合の積演算。
両方の配列に含まれる要素を含んだ新しい配列を返し、重複する要素は削除される。
要素の重複判定:Objectクラスのインスタンスメソッドeql?により行われる。
&&
左辺を評価し、結果が偽であった場合はnilかfalseを返す。左辺の評価結果が真であった場合には右辺を評価しその結果を返す。
要するに、
aがtrue:bへ進んでbの結果を返す
aがfalseまたはnil:aの結果を返す
例:a && b # aがtrueの時 a, b = true, 2 a && b # => 2 # aがfalseの時 a && b # => false
使い方の例:新世界編のルフィとゾロの年齢(ネット調べ)
Luffy = 19 Zoro = 21 if Luffy >= 20 && Zoro >= 20 #ルフィは19なので次の処理へ puts "二人とも成人" elsif Luffy < 20 && Zoro >= 20 #左辺がtrueのため右辺へ進み、右辺でもtrueが返る puts "ルフィは未成年" else puts "二人とも未成年" end # 結果 # ルフィは未成年
|
集合の和演算。
両方の配列に含まれる要素を含んだ新しい配列を返し、重複する要素は削除される。
要素の重複判定は、Objectクラスのインスタンスメソッドであるeql?またはhashで行われる。
||
左辺を評価し、結果が真(true)であった場合にはその値を返す。 左辺の評価結果が偽(false)であった場合には右辺を評価しその評価結果を返す。
要するに、
aがtrue:aの結果を返す
aがfalseまたはnil:bへ進んでbの結果を返す
a || b # aがtrueの時 a,b = true,2 a||b # => true # aがfalseの時 a,b = false,2 a||b # => 2
&&と||
&&と||を表にすると下表のようになる。 これを図にすると、
この図からみると、&&は以下のようになる。
また、||は以下のようになる。
参考文献
https://www.amazon.co.jp/ゼロからわかる-Ruby-超入門-かんたんIT基礎講座-五十嵐/dp/4297101238:title
https://docs.ruby-lang.org/ja/latest/method/Array/i/=26.html
https://docs.ruby-lang.org/ja/latest/method/Array/i/=7c.html
https://docs.ruby-lang.org/ja/latest/doc/spec=2foperator.html#and
https://docs.ruby-lang.org/ja/latest/doc/spec=2foperator.html#or