self != other -> bool
[permalink][rdoc][edit]-
オブジェクトが other と等しくないことを判定します。
デフォルトでは self == other を評価した後に結果を論理否定して返します。このため、サブクラスで BasicObject#== を再定義しても != とは自動的に整合性がとれるようになっています。
ただし、 BasicObject#!= 自身や BasicObject#! を再定義した際には、ユーザーの責任で整合性を保たなくてはなりません。
このメソッドは主に論理式の評価に伴って副作用を引き起こすことを目的に再定義するものと想定されています。
- [PARAM] other:
- 比較対象となるオブジェクト
[SEE_ALSO] BasicObject#==, 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