Tbpgr Blog

Ruby プログラマ tbpgr(てぃーびー) のブログ

書籍 Ruby Cookbook | 1つのハッシュに複数の値を設定

パンくず

Ruby Cookbook
1つのハッシュに複数の値を設定

概要

1つのハッシュに複数の値を設定

内容

基本、Hashはkeyとvalueの1対1で成り立ちます。
valueに配列を指定することで1対多でハッシュを利用することが可能です。

サンプル

require "pp"

languages = [['Java','compile'],['JavaScript','script'],['Ruby','script'],['c','compile'],['c++','compile'],['Python','script'],['Erlang','functional']]
language_map = Hash.new { |hash, key| hash[key] = [] }
languages.each {|odd,even|language_map[even] << odd}
pp language_map

出力

{"compile"=>["Java", "c", "c++"],
 "script"=>["JavaScript", "Ruby", "Python"],
 "functional"=>["Erlang"]}