在 Ruby 中对一个数组求和
Stewart Nguyen
2023年1月30日
2022年5月18日
本教程将讨论计算数组中数字的不同方法。
使用 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