所以我正在研究 ruby monk网站上的一些 Ruby 方法示例,并且无法解释下面代码中发生的事情。更具体地说,我希望有人可以用外行的术语来帮助解释“计算”方法的代码中的每一行所描述的内容?我真的很感激任何和所有的帮助!
def add(*numbers)
numbers.inject(0) { |sum, number| sum + number }
end
def subtract(*numbers)
sum = numbers.shift
numbers.inject(sum) { |sum, number| sum - 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