рефакторинг рубинового метода - PullRequest
1 голос
/ 27 февраля 2011

это простой вопрос ...

Может ли этот метод быть реорганизован?

def sum
  total = 0
  [1,2,3,4].each do |num|
    total += num
  end
  total
end

спасибо за вашу помощь!

Ответы [ 4 ]

13 голосов
/ 27 февраля 2011

Вы можете использовать это:

[1,2,3,4].inject(0, :+) # => 10
3 голосов
/ 27 февраля 2011
[1,2,3,4].inject { |total,num| total= total+num }

ИЛИ согласно предложению ниже должно быть

[1,2,3,4].inject(0) { |total,num| total+num }
2 голосов
/ 27 февраля 2011
>> [1, 2, 3, 4].inject(0) { |acc, x| acc + x }
=> 10

Или просто:

>> [1, 2, 3, 4].inject(0, :+)
=> 10
0 голосов
/ 27 февраля 2011
...