我试图改变哈希中的密钥的值。我有我的算法将其更改为正确的值,唯一的问题是它改变了哈希中的所有值,而不仅仅是我想要的值。我如何仅更改哈希中的某些值?
我尝试了hash.has_key?(键)方法,它仍然改变了我的所有值
if @hash.has_key?(k)
@hash.select {|k,v| v.price = (v.price/100)}
else
print "Key not found"
end
has_key?
不是您的问题... Hash#select
在所有值上迭代。
这是两个选项:
@hash.select{|k,v| v.price /= 100 if k == key}
或
if @hash.has_key?(key)
@hash[key].price /= 100
else
print "Key not found"
end