nil、empty、blankの違いについて、いつも混乱するのでまとめました。
nilは何も存在しない
器も中身も本当何もない状態
逆に""は、空白が存在するという意味になる。
nil?
user.nil?
userという器も中身も何も存在しなければ、trueを返す
emptyは器はあるけど、中身がない
器に何も入っていない状態。
empty?
book.empty?
bookという器はあるけど、中に何も入っていない状態
bookという器がなければ、エラーになる。
文字列の長さが0のとき、配列が空のときにtrueを返す。
数値には定義されていない。
へえ〜、知らなかった。
blank?
器が存在するか中身が入っているかを確認
nil?とempty?を合体させたメソッド、という感じ
nil, "", " ", [], {} のいずれかでtrueを返す。