2018 Aug. 19.
http://simanman.hatenablog.com/entry/2013/09/24/211044
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([])
0 件のコメント:
コメントを投稿