这个Ruby代码使用inject方法做了什么?

时间:2016-01-21 18:02:36

标签: ruby

class Array
    def sum(start = 0)
        inject(start, &:+)
    end
end

请解释我使用此代码。 带输入和输出的测试用例会很有帮助。 谢谢。

1 个答案:

答案 0 :(得分:1)

它总结了保存在数组中的所有元素。 In [1]: import distutils In [2]: distutils.util.strtobool("false") Out[2]: 0 In [3]: distutils.util.strtobool("true") Out[3]: 1 是添加了总和的值。例如对于数组start将返回15(10 + 1 + 4)。 foo = [1, 4]; foo.inject(10, &:+)告诉应该在数组中的每个元素上调用什么操作; 它与你给出自己的回调相同,例如

&:+