Rubyリファレンス: Home

equal? (Object)

Edit   History

標準クラス・モジュール > Object > equal?

obj.equal?(other_obj)

equal?メソッドは、レシーバobjと引数other_objが同じオブジェクトならtrue、別のオブジェクトならfalseを返します。

Ruby 1.9 Ruby 1.9では、Objectクラスのequal?メソッドはBasicObjectクラスに移されました(この変更は、Ruby 1.8用に書いたプログラムには特に影響はありません)。

Objectクラスでは==equal?は同じメソッドの別名です。しかし、==と違ってequal?メソッドはサブクラスで上書きされず、常にオブジェクトの同一性を調べるのに使われます。自作のクラスでもequal?を上書きしないでください。

次の例では、文字列を==equal?で比較しています。Stringクラスの==は、文字列の内容が同じであればtrueを返します。equal?で比較すると、同じ内容でもオブジェクトが別ならfalseになります。

str1 = "hello"
str2 = "hello"
puts str1 == str2
puts str1.equal?(str2)
true
false

関連項目