0
請有人,如果你可以解釋這段代碼的第三行。這種方法是從第2號開始減去一組數字。從第1和第3號減去。從所得中扣除,等等...關於使用注入紅寶石
def subtract(*numbers)
sum = numbers.shift
numbers.inject(sum) { |sum, number| sum - number }
end
請有人,如果你可以解釋這段代碼的第三行。這種方法是從第2號開始減去一組數字。從第1和第3號減去。從所得中扣除,等等...關於使用注入紅寶石
def subtract(*numbers)
sum = numbers.shift
numbers.inject(sum) { |sum, number| sum - number }
end
http://ruby-doc.org/core-1.9.3/Enumerable.html#method-i-inject
沒有什麼是注射需要一定的初始值(和),並應用了一些對它的操作爲您的枚舉的每個元素。因此,在這裏,我們取1,並從1中減去第一個元素,並從該結果中減去第二個元素,等等...
所以下面我們有1 - 2 = -1
,然後-1 - 3 = -4
。
>> numbers=[1,2,3]
=> [1, 2, 3]
>> sum = numbers.shift
=> 1
>> numbers
=> [2, 3]
>> numbers.inject(sum) { |sum, number| sum - number }
=> -4