拼音方法说明



所以我正在研究rubymonk网站上的一些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
options = arguments[-1].is_a?(Hash) ? arguments.pop : {}

创建一个名为 options 的新哈希。这将分配给参数数组中的最后一个元素,或者如果不是哈希,则将其分配给空元素。在 ruby 中,像 python 一样,使用 -1 作为数组索引可以得到数组中的最后一个元素。

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

如果刚刚创建的哈希为空,请将哈希中与键:add匹配的值设置为 true。

return add(*arguments) if options[:add]
return subtract(*arguments) if options[:subtract]

根据刚刚创建的 options 哈希的状态,使用您传递给此函数的相同参数返回 addsubtract 的结果。

例如:

arguments = [{}, {:add => false, :subtract => true}]

如果用作参数,将诱导减法。

相关内容

  • 没有找到相关文章

最新更新