ダブル エクスクラメーション !! (感嘆符) を使う。

サンプルコード。


class Bd
 
  def initialize(obj)
    @obj = obj
  end
 
  def zehi?
    # 否定を否定
    !!@obj
  end
end
 
puts Bd.new(true).zehi?
puts Bd.new(false).zehi?
puts Bd.new(nil).zehi?
puts Bd.new(0).zehi?
puts Bd.new(1).zehi?
puts Bd.new('').zehi?
puts Bd.new('hogehoge').zehi?

実行結果。


C:\>ruby r1.rb
true
false
false
true
true
true
true

ちなみに、環境。


C:\>uname -mrsv
WindowsNT 1 5 x86
 
C:\>ruby -v
ruby 1.9.2p136 (2010-12-25) [i386-mingw32]

tags: ruby

Posted by NI-Lab. (@nilab)