关于循环:重构ruby方法

refactoring ruby method

这是一个简单的问题…

这个方法可以重构吗?

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

谢谢你的帮助!


您可以使用:

1
[1,2,3,4].inject(0, :+) # => 10


1
[1,2,3,4].inject { |total,num| total= total+num }

或者根据下面的建议

1
[1,2,3,4].inject(0) { |total,num| total+num }


1
2
>> [1, 2, 3, 4].inject(0) { |acc, x| acc + x }
=> 10

或者简单地说:

1
2
>> [1, 2, 3, 4].inject(0, :+)
=> 10


和下面一样,Ruby中的数字数组如何求和?