Rubyリファレンス: Home

eql? (Object)

Edit   History

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

obj.eql?(other_obj)

eql?メソッドは、ハッシュの内部で「同じキーかどうか」を調べるために使われるメソッドです。レシーバobjが引数other_objと同じかどうかを調べ、同じならtrue、違えばfalseを返します。

オブジェクトを比較したいときは、普通はeql?メソッドを使わずに、「オブジェクトの内容が同じかどうか」を調べるには==メソッドを、「同じオブジェクトかどうか」を調べるにはequal?メソッドを使ってください。

Objectクラスのeql?メソッドは、同じオブジェクトかどうかを調べるだけのもので、equal?メソッドと同じです。StringArrayなどのeql?メソッドは上書きされて、「内容が同じかどうか」を調べるものになっています。

class Cat
end
 
cat1 = Cat.new
cat2 = cat1
cat3 = Cat.new
puts cat1.eql?(cat2)
puts cat1.eql?(cat3)
true
false

関連項目