Ruby 初心者スレッド Part 36
■ このスレッドは過去ログ倉庫に格納されています
0028デフォルトの名無しさん
2010/03/23(火) 20:54:26self と other が等しければ真を返します。デフォルトでは equal? と同じ効果です。
このメソッドは各クラスの性質に合わせて再定義するべきです。
self === other
このメソッドは case 文での比較に用いられます。
デフォルトは Object#== と同じ働きをしますが、この挙動はサブクラスで所属性のチェックを実現するため適宜再定義されます。
eql?(other)
二つのオブジェクトが等しければ真を返します。Hash で二つのキーが等しいかどうかを判定するのに使われます。
このメソッドを再定義した時には Object#hash メソッドも再定義しなければなりません。
eql? のデフォルトの定義は equal? と同じくオブジェクトの同一性判定になっています。
equal?(other)
other が self 自身の時、真を返します。
このメソッドを再定義してはいけません。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
複雑だよねー
■ このスレッドは過去ログ倉庫に格納されています