ダブル エクスクラメーション !! (感嘆符) を使う。
サンプルコード。
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)