1
我想创建一个存储一个不存在的密钥的自动增量编号的散列。 我知道还有其他的,不太脆弱的方法来做到这一点;我的问题是:为什么我的实例变量失败如此悲惨?为什么我的instance_variable为零? (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