Ruby/連想配列操作

Ruby/連想配列操作

バージョンと製造年月日

2009年04月27日 Ruby1.8.6

Rubyの連想配列

これはHashクラスとして実装されている。

作成

作る

a = Hash.new

リテラルを使って作る

よく使うのでリテラルとして組み込まれている

空の連想配列を作るとこうなる

a = {}

連想配列のキーはシンボルがよく用いられるので、このように key value を使って中身を入れることもできる

a = { :hoge => "ほげ", :piyo => "ぴよ", :fuga => "ふが"}

Ruby 1.9 からは JSON ライクに記述することができ、このように書くと↑と同様の連想配列が作成できる。

a = {hoge: "ほげ", piyo: "ぴよ", fuga: "ふが"}

要素

追加

a[:hoge] = "ほげ"

Hashの値をキーを元にマージする

何かの集計結果を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

Tag

ruby/map_ope.txt · 最終更新: 2017-07-12 12:54 by ore