在 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