今回はRubyでnil判定をする方法について解説します。
nil
Rubyにおいてnilとはなにも存在していない状態です。
オブジェクトの中身やオブジェクト自体がnilかどうか判定するときに使えるメソッドnil?、empty?が標準で用意されています。
Ruby on Railsでは他にもnilの判定に使う便利なメソッドがあります。
nil?
nil?ではレシーバがnilの場合、trueを返し、nil以外のときはfalseを返します。
nil?はすべてのオブジェクトに定義されています。
例:
1 2 3 |
drink = ["milk",nil,"coffee"] drink.each{|obj| puts obj.nil?} |
実行結果:
1 2 3 |
false true false |
上記の例では、nilかどうかの判定なので、trueかfalseかどうかの判定ではないです。
milk、coffeeは少なくともオブジェクトとして存在するのでここではfalseが返ってきます。
empty?
empty?では配列や文字列の中身が存在しているのかしていないのか判定することができます。
少なくともその配列や文字列を格納するものがあることが前提です。
empty?は文字列の長さが0のとき、配列の中身が空のときtrueを返します。
例:
1 2 3 4 5 |
drink = Hash.new food = "" puts drink.empty? puts food.empty? |
実行結果:
1 2 |
true true |
drinkのハッシュはまだ空なので、trueが返ってきます。
foodに格納されている文字列の長さは0なのでこちらもtrueが返ってきます。