存在しないキーの自動インクリメント番号を格納するハッシュを作成しようとしています。これを行うには、他にも脆弱性の低い方法があることを私は知っています。私の質問は:なぜ私のインスタンス変数はそれほど惨めに失敗するのですか?
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