前提・実現したいこと
rubyでhashからキーごとに集計して、新しいhashを作りたいのですが、エラーになってしまいます。
nの回数毎に値を集計したいです。
発生している問題・エラーメッセージ
エラーメッセージ Traceback (most recent call last): 2: from test.rb:3:in `<main>' 1: from test.rb:3:in `times' test.rb:7:in `block in <main>': undefined method `+' for nil:NilClass (NoMethodError)
該当のソースコード
ruby
1sums_hash_result = Hash.new { |h,k| h[k] = {} } 23.times do |n| 3 4 # 1や3は他のhashのvalueなのですが、サンプルで単なる数値を入れています。 5 sums_hash_result[n + 1]['value_a'] += 1 6 sums_hash_result[n + 1]['value_b'] += 3 7end 8 9pp sums_hash_result
試したこと
hashの初期化で違うものを試しましたが、うまくいきません。
おそらく初期化がうまくいってないと思うのですが、初期化の仕方がわかりません。
ruby
1hash = Hash.new { |h,k| h[k] = Hash.new(&h.default_proc) }
補足情報(FW/ツールのバージョンなど)
ruby 2.6.3p
回答1件
あなたの回答
tips
プレビュー