在 Ruby 中对一个数组求和

Stewart Nguyen 2023年1月30日 2022年5月18日
  1. 使用 Array#sum 对 Ruby 中的数字数组求和
  2. 使用 Array#inject 对 Ruby 中的数字数组求和
  3. 在 Ruby 中使用 Array#each 来求一个数组的和
在 Ruby 中对一个数组求和

本教程将讨论计算数组中数字的不同方法。

使用 Array#sum 对 Ruby 中的数字数组求和

Array#sum 仅在 Ruby 2.4.0 及更高版本中可用。

[1, 2, 3].sum

输出:

6

使用 Array#inject 对 Ruby 中的数字数组求和

要在 2.4.0 之前的 Ruby 版本中计算数组的总和,我们必须使用 inject 或其别名 reduce

inject 是一个接受初始值和块的函数。累积是第一个块参数,当前数字是第二个。

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

输出:

6

或者,我们可以使用 reduce 来代替 inject

[1, 2, 3].reduce(0) { |sum, num| sum += num }

输出:

6

我们可以通过传递符号作为每个元素响应的方法名称来缩短整个代码,在这种情况下,方法+

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

输出:

6

在 Ruby 中使用 Array#each 来求一个数组的和

each 可以与临时变量一起使用。这是一种幼稚的策略,不推荐。

sum = 0
[1, 2, 3].each { |num| sum += num }
puts sum

输出:

6

相关文章 - Ruby Array