在 Ruby 中對一個陣列求和
Stewart Nguyen
2023年1月30日
本教程將討論計算陣列中數字的不同方法。
使用 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