2009年04月27日 Ruby1.8.6
これはHashクラスとして実装されている。
a = Hash.new
よく使うのでリテラルとして組み込まれている
空の連想配列を作るとこうなる
a = {}
連想配列のキーはシンボルがよく用いられるので、このように key value を使って中身を入れることもできる
a = { :hoge => "ほげ", :piyo => "ぴよ", :fuga => "ふが"}
Ruby 1.9 からは JSON ライクに記述することができ、このように書くと↑と同様の連想配列が作成できる。
a = {hoge: "ほげ", piyo: "ぴよ", fuga: "ふが"}
a[:hoge] = "ほげ"
何かの集計結果をhashに格納しておいて、後でそれを統合したいという場合はよくある
mergeメソッドを使えば統合ができる。 mergeメソッドのブロックは引数を3つとり、第一引数にキー、第二引数にmergeメソッドを使ってる側のvalue、第三引数にmergeメソッドに引数として渡している側のvalueが入る。
keyに関しては処理順番はわからんが、メソッド側、引数側両方のキーが入る。
そしてブロックの中にマージ方法を記述すれば、そのルールに従って値がマージされキーに対応して格納される。
a = { "this" => 1, "is" => 1, "a" => 1, "pen" => 1 } b = { "that" => 1, "is" => 1, "a" => 1, "pen" => 1 } c = a.merge(b) do |k, v1, v2| v1 + v2 end p c