! self -> bool
[permalink][rdoc][edit]-
オブジェクトを真偽値として評価し、その論理否定を返します。
このメソッドは self が nil または false であれば真を、さもなくば偽を返します。主に論理式の評価に伴って副作用を引き起こすことを目的に再定義するものと想定されています。
このメソッドを再定義しても Ruby の制御式において nil や false 以外が偽として扱われることはありません。
- [RETURN]
- オブジェクトが偽であれば真、さもなくば偽
class NegationRecorder < BasicObject def initialize @count = 0 end attr_reader :count def ! @count += 1 super end end recorder = NegationRecorder.new !recorder !!!!!!!recorder puts 'hoge' if !recorder puts recorder.count #=> 3
class AnotherFalse < BasicObject def ! true end end another_false = AnotherFalse.new # another_falseは*真* puts "another false is a truth" if another_false #=> "another false is a truth"