Loops 更改哈希函数上的值
我正在做有关哈希的RubyMonk练习 其做法是将餐厅菜单的价格调整10%。 我的解决方案不正确。我迭代了每个元组,只更改了price值Loops 更改哈希函数上的值,loops,hash,each,Loops,Hash,Each,我正在做有关哈希的RubyMonk练习 其做法是将餐厅菜单的价格调整10%。 我的解决方案不正确。我迭代了每个元组,只更改了price值 restaurant_menu = { "Ramen" => 3, "Dal Makhani" => 4, "Coffee" => 2 } restaurant_menu.each do |item, price| price = price * 1.1 end 正确的解决方案就在这里。 餐厅菜单={“拉面”=>3,“达尔马克哈尼”=>
restaurant_menu = { "Ramen" => 3, "Dal Makhani" => 4, "Coffee" => 2 }
restaurant_menu.each do |item, price|
price = price * 1.1
end
正确的解决方案就在这里。
餐厅菜单={“拉面”=>3,“达尔马克哈尼”=>4,“咖啡”=>2}
餐厅菜单,每一项,价格|
餐厅菜单[项目]=价格+(价格*0.1)
结束
我不明白,如果我已经在迭代price值,为什么需要额外调用hash 您没有更新原始哈希。要更新原始哈希,应执行以下操作:
restaurant_menu.each do |key, value|
restaurant_menu[key] = value * 1.1
end
我重命名为
item,price
为key,value
,以弄清这里发生了什么。我希望这是有道理的。如果没有,请留下评论。我对ruby了解不多,但我希望在您的原始代码中,您只是更新了本地(堆栈)变量“price”,而不是存储在hash table.Alex中的值。你的意思是价格有一个局部变量,独立于哈希表中的一个?是的,这就是我的意思,堆栈上的一个变量,在每次迭代过程中被分配从哈希表中取出的值。i、 e.与哈希表中的“价格”字段不同的内存位置(引用、指针、选择您喜欢的术语)。