Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > library _builtin > class BasicObject > !=
self != other -> bool
オブジェクトが other と等しくないことを判定します。
デフォルトでは self == other を評価した後に結果を論理否定して返します。 このため、サブクラスで BasicObject#== を再定義しても != とは自動的に整合性が とれるようになっています。
ただし、 BasicObject#!= 自身や BasicObject#! を再定義した際には、ユーザーの責任で 整合性を保たなくてはなりません。
このメソッドは主に論理式の評価に伴って副作用を引き起こすことを目的に 再定義するものと想定されています。
[SEE_ALSO] BasicObject#==
[SEE_ALSO] BasicObject#!
例
class NonequalityRecorder < BasicObject def initialize @count = 0 end attr_reader :count def !=(other) @count += 1 super end end recorder = NonequalityRecorder.new recorder != 1 puts 'hoge' if recorder != "str" p recorder.count #=> 2