Rubyで存在確認、nil、empty

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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です