Rubyリファレンス: Home

hash (Hash)

Edit   History

Ruby 1.8.7 Ruby 1.9

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

hash.hash

hashメソッドは、ハッシュのハッシュ値(整数)を生成して返します。各キーと値に対してhashメソッドを呼び出した結果を元にしてハッシュ値を作ります。

hashメソッドとeql?メソッドは、Hashクラスでキーの検索や比較のために用いられます。詳しくはハッシュテーブルをご覧ください。

hash1 = { "Alice" => 1, "Bob" => 2 }
hash2 = { "Bob" => 2, "Alice" => 1 }
puts hash1.hash, hash2.hash
642386314
642386314    (実行ごとに変わります)

Ruby 1.8.6以前のHashクラスにはhashメソッドがないので、Objectクラスのhashメソッドが使われます。そのため、ハッシュをハッシュのキーにしたときは、内容が同じでも別々のキーになります。

hash = Hash.new
hash["Alice" => 1, "Bob" => 2] = 1
hash["Alice" => 1, "Bob" => 2] = 2
p hash
{{"Alice"=>1, "Bob"=>2}=>1, {"Alice"=>1, "Bob"=>2}=>2}  (Ruby 1.8.6)
{{"Alice"=>1, "Bob"=>2}=>2}  (Ruby 1.8.7/1.9)

関連項目