【发布时间】:2016-04-12 09:08:59
【问题描述】:
Ruby Monk(第 4.1 节 - 哈希)有一个关于餐厅的练习,并将价格提高 10%。网站上的路线是:
使用 each 方法将 restaurant_menu 中所有项目的价格提高 10%。
请记住:在前面的示例中,我们只显示了散列中每个项目的键和值。但是在这个练习中,你必须修改哈希并增加每一项的值。
我的主要问题是,为什么这段代码会通过:
restaurant_menu = { "Ramen" => 3, "Dal Makhani" => 4, "Coffee" => 2 }
restaurant_menu.each do |item, price|
restaurant_menu[item] = price + (price * 0.1)
end
对比这个?
restaurant_menu = { "Ramen" => 3, "Dal Makhani" => 4, "Coffee" => 2 }
# write the each loop here.
restaurant_menu.each do | item, price |
puts "#{item}: $#{price + (price * 0.1)}"
end
我假设它与 [item] 有关,我假设它是一个数组(?),并且“price + (price * 0.1)”被添加到 [item] 数组中。
其次,字符串插值是否有可能使上述代码不通过。 . .提前感谢您帮助我更好地理解此代码。
【问题讨论】:
-
在第二种情况下,您只是打印值,但不会更改实际的哈希值。我假设他们正在检查哈希中的值。
-
在第二个示例中,您只是在屏幕上打印 - 第一个示例,您实际上是在更改
restaurant_menu哈希的值。 -
在两个脚本末尾添加
p restaurant_menu以查看差异。