Ruby で数値の配列を合計する

Stewart Nguyen 2023年1月30日
  1. Ruby で Array#sum を使用して数値の配列を合計する
  2. Ruby で Array#inject を使用して数値の配列を合計する
  3. Ruby で Array#each を使用して数値の配列を合計する
Ruby で数値の配列を合計する

このチュートリアルでは、配列内の数値を計算するさまざまな方法について説明します。

Ruby で Array#sum を使用して数値の配列を合計する

Array#sum は、Ruby 2.4.0 以降でのみ使用できます。

[1, 2, 3].sum

出力:

6

Ruby で Array#inject を使用して数値の配列を合計する

2.4.0 より前のバージョンの Ruby で配列の合計を計算するには、inject またはそのエイリアス reduce を使用する必要があります。

inject は、初期値とブロックを受け取る関数です。累積は最初のブロック引数であり、現在の数は 2 番目です。

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

出力:

6

または、inject の代わりに reduce を使用することもできます。

[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