Ruby Monk(第4.1节 - 哈希)对餐馆进行了练习,并将价格提高了10%。网站上的指示是:</ p>
使用每种方法将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
VS。这个?
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]有关,我假设它是一个数组(?)和&#34;价格+(价格* 0.1)&#34;被添加到[item]数组。
其次,字符串插值可能使上述代码无法通过。 。 。提前感谢您帮助我更好地理解此代码。
答案 0 :(得分:1)
执行此操作时:
restaurant_menu[item] = price + (price * 0.1)
您要将新价格分配给哈希的密钥(将存储新值 - 您可以通过调用restaurant_menu[item]
来检查它。)
执行此操作时:
puts "#{item}: $#{price + (price * 0.1)}"
您要将新价格分配到任何地方(当您致电restaurant_menu[item]
时,价格将保持不变)。
因此,您不会更改哈希值,代码也不会通过验证。