我一直在阅读Ruby文档,并查看有关该问题的其他帖子,但我仍然对此感到疑惑:
#counts each number in an array once
array = [1,1,2,5,3,2,5,3,3,3]
numbers = {}
array.each { |num| numbers[num] += 1 }
=> in `block in mode': undefined method `+' for nil:NilClass (NoMethodError)
Run Code Online (Sandbox Code Playgroud)
在Hash文档中,a的默认值Hash
是nil
,这就是我假设我得到此错误的原因.有没有更好的方法将每个键/(值+ = 1)插入数字数组?