我试图将哈希值增加一。我的逻辑似乎是正确的,但由于某种原因,哈希值中的值不会增加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 :(得分: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]
语法访问哈希值。