🖥

Ruby | ハッシュのキーに配列を使う

に公開

使えるんだ。知らなかった。

定義の例

hash = {[:a, :a] => 100, [:a, :b] => 200}

# => {[:a, :a]=>100, [:a, :b]=>200}

ハッシュ追加の例

hash[[:a, :c]] = 300

# hash = {[:a, :a]=>100, [:a, :b]=>200, [:a, :c]=>300}

用途

ケースによっては、次のように、ネストしたハッシュを作らなくて良くなりそう。
工夫しないと NoMethodError が出るから厄介。

hash = {} 

hash[:a][:a] = 100

# => NoMethodError: undefined method `[]=' for nil:NilClass

ただしご覧のとおり「ネスト」しているわけではないので
「ひとつの親要素を取り出して、その子分を展開する」とかは出来ないかも。

環境

  • ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin15]

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ

Twitter

https://twitter.com/YumaInaura

公開日時

2016-07-28

Discussion