Rubyリファレンス: Home

eql? (Hash)

Edit   History

Ruby 1.8.7 Ruby 1.9

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

hash.eql?(other_hash)

eql?メソッドは、ハッシュのキーがハッシュであるときに、「キーとして同じかどうか」を調べるために内部的に使われるメソッドです。

レシーバhashと引数other_hashの各キーと値を比較してそれぞれが同じであればtrue、違いがあればfalseを返します。キーと値の比較には、各オブジェクトのeql?メソッドが使われます。

一般的なハッシュの比較には、eql?メソッドを使わずに、「ハッシュの内容が同じかどうか」を調べるには==メソッドを、「同じオブジェクトかどうか」を調べるにはequal?メソッドを使ってください。

Ruby 1.8.6以前のHashクラスにはeql?メソッドがないので、Objectクラスのeql?メソッド(同じオブジェクトかどうか)が使われます。

hash1 = { :a => 1, :b => 2 }
hash2 = { :a => 1.0, :b => 2.0 }
puts hash1 == hash2
puts hash1.eql?(hash2)
true
false

関連項目