以下の内容はhttps://shuzo-kino.hateblo.jp/entry/2014/12/14/212526より取得しました。


「BasicObject#!=」は実装上、「BasicObject#==」を否定した結果を返す

「BasicObject#!=」は実装上、「BasicObject#==」を否定した結果を返します。

公式をみると、

デフォルトでは self == other を評価した後に結果を論理否定して返します。 このため、サブクラスで BasicObject#== を再定義しても != とは自動的に整合性が とれるようになっています。

つまり

def !=(other)
  !(self.equal?(ohter))
end

といった感じの実装となっているわけです。
そのため、「equal?」およびそのエイリアスの「==」を定義してあげれば、
自動的にその否定となるわけです。

コーディング規約上、否定形はunlessを使う事が推奨されています。
上のルールに従えば

something if hoge != fuga

something unless hoge == fuga

または

something unless hoge.equal?(fuga)

と書けばよい事になります。




以上の内容はhttps://shuzo-kino.hateblo.jp/entry/2014/12/14/212526より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14