对 Ruby 中的数组使用 .sum 时没有方法错误

No Method Error when using .sum to an array in Ruby

当期望计算给定数组的总和时,下面的函数将抛出 NoMethodError。

通过打印结果“p”,它应该 return 10.

p [1,2,3,4].sum
#=> 10

我没有得到总和的结果,而是得到了下面的错误。

undefined method `sum' for [1, 2, 3, 4]:Array (NoMethodError)

检查您在 ruby -v

中使用的 ruby 版本

如果您的版本早于 2.4,则可以改用 inject。

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

以上是shorthand for

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

需要零 0 来处理空数组,否则 return nil