0

このコードの 3 行目を説明できる人がいたら教えてください。このメソッドは、2 番目の番号から始まる数字の配列を減算することです。1番目と3番目の番号から差し引かれます。結果から差し引いたものなど...

def subtract(*numbers)

  sum = numbers.shift

  numbers.inject(sum) { |sum, number| sum - number }  

end
4

1 に答える 1

0

http://ruby-doc.org/core-1.9.3/Enumerable.html#method-i-inject

inject が行うことは、いくつかの初期値 (合計) を取り、列挙可能な要素ごとにいくつかの操作をそれに適用することです。ここでは、1 を取り、1 から最初の要素を引き、その結果から 2 番目の要素を引きます。

そのため、以下に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
于 2012-10-07T15:14:22.123 に答える