Rubyリファレンス: Home

invert (Hash)

Edit   History

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

hash.invert

invertメソッドは、キーを値に、値をキーにしたハッシュを作成します。レシーバの各キーと値を「値 => キー」として新しいハッシュに集めて返します。

:a => 1, :b => 1」のように別のキーが同じ値を持っているときは、いずれかのキーが1つだけ残ります。

status = { "Not Found" => 404, "Forbidden" => 403, "OK" => 200,
           "Service Unavailable" => 503, "Success" => 200 }
p status.invert
{403=>"Forbidden", 200=>"OK", 503=>"Service Unavailable", 404=>"Not Found"} (Ruby 1.8)

Ruby 1.9のハッシュには順序があるので、別のキーが同じ値を持っているときは、後ろのほうのキーが残ります。

{404=>"Not Found", 403=>"Forbidden", 200=>"Success", 503=>"Service Unavailable"} (Ruby 1.9)