我正在使用RubyMonk,我只是不明白计算方法在做什么。将逐一澄清一些澄清。 我理解加法和减法方法
def add(*numbers)
numbers.inject(0) {|sum, number| sum + number}
end
def subtract(*numbers)
current_result = numbers.shift
numbers.inject(current_result) {|current_result, number| current_result - number}
end
def calculate(*arguments)
options = arguments[-1].is_a?(Hash) ? arguments.pop : {}
options[:add] = true if options.empty?
return add(*arguments) if options[:add]
return subtract(*arguments) if options[:subtract]
end
答案 0 :(得分:1)
options = arguments[-1].is_a?(Hash) ? arguments.pop : {}
这一行说明"如果最后一个参数是一个哈希,请将它用于选项(并从参数列表中删除它),否则为选项创建一个空哈希。"
options[:add] = true if options.empty?
此行显示"如果根本没有任何选项,请添加:add => true
选项"。