Rubyで存在確認を行う方法をinteractive Ruby (irb)を使って確認しました。
●interactive Ruby (irb)の起動方法
$ rails console
1)emptyメソッド
文字列に対し、emptyメソッドを実行する例です。
irb(main):002:0> “foobar”.empty?
=> false
irb(main):003:0> “”.empty?
=> true
例1)単純なif文
irb(main):004:0> s = “foobar”
=> “foobar”
irb(main):005:0> if s.empty?
irb(main):006:1> “The string is empty”
irb(main):007:1> else
irb(main):008:1* “The string is nonempty”
irb(main):009:1> end
=> “The string is nonempty”
例2)ifとAND、ORの組み合わせ
irb(main):010:0> x = “foo”
irb(main):011:0> y = “”
irb(main):012:0> puts “Both strings are empty” if x.empty? && y.empty?
=> nil
irb(main):013:0> puts “One of the strings is empty” if x.empty? || y.empty?
One of the strings is empty
=> nil
irb(main):014:0> puts “x is not empty” if !x.empty?
x is not empty
=> nil
例3)unlessを使って条件制御
irb(main):021:0> string = “foobar”
irb(main):022:0> puts “The string ‘#{string}’ is nonempty.” unless string.empty?
The string ‘foobar’ is nonempty.
=> nil
2)nilに関する注意点
①nilもオブジェクトで”to_s”メソッドで文字列を返す。
irb(main):015:0> nil.to_s
=> “”
②nilオブジェクトは、直接emptyメソッドを使う事が出来ず、”to_s”メソッドをはさんで使う。
irb(main):016:0> nil.empty?
NoMethodError: undefined method `empty?’ for nil:NilClass
from (irb):16
irb(main):017:0> nil.to_s.empty?
=> true
③Rubyではnilはfalse、nil以外で0の場合もtrue
irb(main):023:0> if nil
irb(main):024:1> true
irb(main):025:1> else
irb(main):026:1* false
irb(main):027:1> end
=> false
irb(main):033:0> if 0
irb(main):034:1> true
irb(main):035:1> else
irb(main):036:1* false
irb(main):037:1> end
=> true
④nilメソッドで存在確認
irb(main):018:0> “foo”.nil?
=> false
irb(main):019:0> “”.nil?
=> false
irb(main):020:0> nil.nil?
=> true