1
存在しないキーの自動インクリメント番号を格納するハッシュを作成しようとしています。 私はこれを行うための他の脆弱ではない方法があることを認識しています。私の質問です:なぜ私のインスタンス変数は非常に惨めに失敗しますか?なぜ私のinstance_variableはnilですか? (2行のコード)
h = Hash.new{|h,k| h[k] = (@max_value += 1)}
h.instance_variable_set(:@max_value, 0) # zero ! Not nil! Argh...
puts h[:a] # expecting 1; getting NoMethodError undefined method '+' for nil:NilClass
puts h[:b] # expecting 2
puts h[:a] # expecting 1