Ruby/論理演算

Ruby/論理演算

真偽値

Rubyではnilかfalseのみが偽でありあとのオブジェクトはすべてtrueと判断される。空白とかゼロもtrue

論理和

おなじみのやつ

true || true #=> true
true || false #=> true
false || true #=> true
false || false #=> true

この演算子にはif文的使い方もあって

  • 先に書いたものがtrueなら先を返す
  • 先に書いたものがfalseなら後を返す
  • 全部falseなら最後を返す

という性質がある

なので

hoge = nil || "aaa"
hoge = "bbb" || "aaa"
hoge = "bbb" || nil
hoge = 1 || 2

こんな風な選択的代入ができる

論理積

論理和と同じような使い方としてnilだったらnilを返すという性質があるので

a = nil && 1

だったら a には nil が入る

a = 1 && 2 && nil

でもnilが入る

このnilが出た時点で以降の判定を行わないという性質を利用すると

a = b && b.c()

こんな風にオブジェクトの存在をチェックしたのちにそのメソッドを呼び出してヌルポをはじくことができる

ruby/boolean_ope.txt · 最終更新: 2016-04-26 20:38 by ore