4

キーがハッシュに存在する場合、ハッシュの値を変更しようとしています。私のアルゴリズムはそれを正しい値に変更するように機能しています。唯一の問題は、必要な値だけでなく、ハッシュ内のすべての値を変更することです。ハッシュ内の特定の値のみを変更するにはどうすればよいですか?

hash.has_key?(key)メソッドを試しましたが、それでもすべての値が変更されます

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

1 に答える 1

7

has_key?あなたの問題ではありません...Hash#selectすべての値を繰り返します。

次の 2 つのオプションがあります。

@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
于 2012-10-21T16:07:12.170 に答える