【发布时间】:2013-11-12 02:12:22
【问题描述】:
我正在努力理解 Rubymonk 编码练习解决方案,但无法理解 cost 方法中发生的事情。
作为参考,menu 是{:rice => 3, :noodles => 2},其目的是从menu 计算订单的总成本。
订单示例如下:
{:rice => 1, :noodles => 1} )
我想出的解决方案更简单,至少在我的脑海中,但返回了“无法将符号转换为整数”错误,我无法通过 to_i 纠正该错误。
class Restaurant
def initialize(menu)
@menu = menu
end
def cost(*orders)
orders.inject(0) do |total_cost, order|
total_cost + order.keys.inject(0) {|cost, key| cost + @menu[key]*order[key] }
end
end
end
有人能简单解释一下cost方法中的每一步吗?
【问题讨论】:
-
查找 spalt 运算符并查看一些使用中的注入函数示例。
-
@hirolau,
s/spalt/splat/. -
如果您对任何答案感到满意,您应该选择对您最有帮助的答案。
-
感谢您的提醒,我想知道我应该如何表明这一点。
-
您需要了解的关于 SO 程序和礼仪的大部分内容是here。
标签: ruby class methods hash inject