2015-11-01 60 views
-1

我正在尝试将哈希值加1。我的逻辑似乎是正确的,但由于某种原因,我的哈希值不会递增1。添加到哈希表中的值

puts item_sold 
    temp = sales_hash.values[item_sold] + 1 
    sales_hash.values[item_sold] = temp 
    puts sales_hash.values[item_sold] 

sales_hash是哈希其中键是和1000-2000之间的数为0。item_sold每个键开始的值是介于1和15,有在哈希15项的随机数。当打印出temp时,它的值为1。但是,当我打印出sales_hash.values[item_sold]的值时,它打印0.什么是sales_hash.values[item_sold]不递增?

+0

如果'item_sold'是一个散列,你不应该能够把它作为一个数组索引。 – rohit89

回答

2

Hash#values返回所有哈希值的数组。要添加到一个值,你会做这样的:

item_sold 
=> {0=>0, 1=>0, 2=>0} 
item_sold[0] += 1 
=> 1 
item_sold 
=> {0=>1, 1=>0, 2=>0} 

您通过使用hash[key]语法访问的哈希值。