Home » ruby » ruby ハッシュオブジェクトのネストの入りくんだ構造を解説

ruby ハッシュオブジェクトのネストの入りくんだ構造を解説

ハッシュオブジェクトのネスト

ハッシュオブジェクトのネスト(入れ子)とは、

ハッシュオブジェクトの値にオブジェクトを指定することを指します。

どういうものかを図で表してみました。

多次元配列のような考え方でもいいかもしれません。

多少複雑ですが、

木の幹のように作成されていることがわかります。

ハッシュオブジェクトのネストのコード

では実際に、ハッシュのネストのコードを書いていきます。

hash = {
    # userキー
    user: {
        user1: {
            name: "syou",
            age: 24,
            gender: "man"
        },
        user2: {
            name: "tarou",
            age: 21,
            gender: "man"
        },
        user3: {
            name: "kana",
            age: 29,
            gender: "woman"
        }
    }
}

コードの内容は、
userキーを作りその階層に、user1,2,3の値のキーを作成してその階層に

name,age,genderの値のキーを作成してそこに値が格納されています。

ハッシュのuserキーのuser1を出力してみます

irb(main):021:0> puts hash[:user][:user1]
{:name=>"syou", :age=>24, :gender=>"man"}

出力する際は、 ハッシュ名[:キー名][:値のキー]
で出力できます。
今回はユーザー管理のようなものハッシュで作ってみましたが、

細かいデータの管理では非常に便利です。

rubyを使う上で何度も使う技術ですので、

ロジックをわかっている必要があります。

ハッシュオブジェクトに配列をネストする方法

キーの値に配列オブジェクトを指定もできます。

hash = { box:[1,2,3] }

ハッシュのキーの値に配列を格納しました。
それでは配列の値を出力してみたいとおもいます。

irb(main):026:0> puts hash[:box][2]
3

ハッシュのboxキーの値の配列の2番目を出力してみました。
このようにキーの値に配列も指定することもできます。

 

参考文献

,

コメントを残す

%d人のブロガーが「いいね」をつけました。