我正在RubyMonk上學習Ruby,並且正在努力處理以下代碼:calculate
方法 - >def calculate(*arguments)
。是否有可能向我解釋每行代碼?我想我知道每個代碼行的語法,但邏輯對我沒有任何意義?RubyMonk的計算方法是做什麼的?
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)
# if the last argument is a Hash, extract it
# otherwise create an empty Hash
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
死我了......我不知道是什麼導致了兩行的回報......
太謝謝你了!
http://meta.stackoverflow.com/questions/253894/how-to-handle-explain-how-this-code-dump-works-問題/ 253896#comment17104_253896 –