Ruby 二次元ハッシュの初期化を行う

  • 作成日 2021.07.06
  • 更新日 2022.08.08
  • Ruby
Ruby 二次元ハッシュの初期化を行う

Rubyで、二次元ハッシュの初期化を行うサンプルコードを記述してます。rubyのバージョンは2.7.2を使用してます。

環境

  • OS windows10 pro 64bit
  • ruby 2.7.2p137

初期化

二次元の場合、{}を使用して初期化するとエラーが発生してしまいます。

h = {
    'A' => {'a'=> 1, 'b' => 2},
    'B' => {'c' => 3, 'd'=> 4}
}

h = {}

p h
# {}

p h['A']['a']= 1
# `<main>': undefined method `[]=' for nil:NilClass (NoMethodError)

二次元の場合は、以下のようにして初期化する必要があります。

h = {
    'A' => {'a'=> 1, 'b' => 2},
    'B' => {'c' => 3, 'd'=> 4}
}

h = Hash.new { |h,x| h[x] = {} }

p h
# {}

p h['A']['a']= 1

p h
# {"A"=>{"a"=>1}}