添加&减去&计算

时间:2015-01-22 17:34:40

标签: ruby

我正在使用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

1 个答案:

答案 0 :(得分:1)

options = arguments[-1].is_a?(Hash) ? arguments.pop : {}

这一行说明"如果最后一个参数是一个哈希,请将它用于选项(并从参数列表中删除它),否则为选项创建一个空哈希。"

options[:add] = true if options.empty?

此行显示"如果根本没有任何选项,请添加:add => true选项"。