rokkonet

PC・Androidソフトウェア・アプリの開発・使い方に関するメモ

ruby 配列を値とするハッシュ

2018 Aug. 19.


http://simanman.hatenablog.com/entry/2013/09/24/211044

  list = Hash.new{|hash, key| hash[key] = []}
  Hash.newにブロックを与えるとブロック引数の1番目がhash自身、2番目がkeyとなります。
  そこで上記のように配列を定義してあげると、keyごとに配列を初期化することが出来るようになります。

  RubyはHashのデフォルト値をHash.newの引数として渡すことで実現できますが、配列を渡すと同じ参照になってしまうのでうまくいきません。
    失敗例:list = Hash.new([])