【发布时间】:2013-08-22 21:38:47
【问题描述】:
我正在学习关于哈希的 RubyMonk 练习 练习是将 restaurant_menu 的价格更改 10%。 我的解决方案不正确。我迭代了每个元组并只更改了价格值。
restaurant_menu = { "Ramen" => 3, "Dal Makhani" => 4, "Coffee" => 2 }
restaurant_menu.each do |item, price|
price = price * 1.1
end
正确的解决方案在这里。 restaurant_menu = { "拉面" => 3, "Dal Makhani" => 4, "咖啡" => 2 } restaurant_menu.each |项目,价格| restaurant_menu[item] = 价格 + (价格 * 0.1) 结束
如果我已经在迭代价格值,我不明白为什么需要额外调用哈希。
【问题讨论】:
-
我不太了解红宝石,但我希望在您的原始代码中您只是更新本地(堆栈)变量“价格”,而不是存储在哈希表中的值。
-
亚历克斯。你的意思是有一个价格的局部变量独立于哈希表中的那个?
-
是的,这就是我的意思,堆栈上的一个变量,在每次迭代期间被分配从哈希表中提取的值。即与哈希表中的“价格”字段不同的内存位置(引用、指针、选择您喜欢的术语)。