-1
所以我正在通過rubymonk網站的Ruby方法的一些示例工作,並且無法解釋下面的代碼中發生了什麼。更具體地說,我希望有人能夠以通俗的語言來幫助解釋'calculate'方法的代碼中的每一行是如何描述的?我非常感謝任何幫助!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
非常感謝Kepani。你能否給我一個具體的例子來說明如何傳遞參數會導致加法或減法? – John
@s_jw回答用快速示例更新。 – yamafontes
再次感謝!最後一個問題是,如何將「計算」方法(以及哪些元素作爲參數)稱爲生成剛纔提供的示例。我對很多問題表示歉意,我是一個新手,一直試圖讓這個在我腦海中變得有意義,所以我試圖弄清楚一切從頭到尾如何工作。 – John