加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – 如果密钥存在于哈希中,则更改哈希值

发布时间:2020-12-17 02:44:26 所属栏目:百科 来源:网络整理
导读:如果密钥存在于散列中,我试图改变散列的值.我有我的算法工作将它改为正确的值唯一的问题是它改变哈希中的所有值而不是我想要的值.我如何只更改哈希值中的某些值? 我尝试过hash.has_key?(key)方法,它仍然改变了我的所有值 if @hash.has_key?(k) @hash.selec
如果密钥存在于散列中,我试图改变散列的值.我有我的算法工作将它改为正确的值唯一的问题是它改变哈希中的所有值而不是我想要的值.我如何只更改哈希值中的某些值?

我尝试过hash.has_key?(key)方法,它仍然改变了我的所有值

if @hash.has_key?(k)
  @hash.select {|k,v| v.price = (v.price/100)}
else 
  print "Key not found"
end

解决方法

对象的has_key?不是你的问题……哈希#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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读