Ruby 配列内の値を総和を求める

  • 作成日 2020.12.21
  • 更新日 2022.08.19
  • Ruby
Ruby 配列内の値を総和を求める

Rubyで、joinを使って、配列内の値を総和を求めるサンプルコードを記述してます。rubyのバージョンは2.7.2を使用してます。

環境

  • OS windows10 pro 64bit
  • ruby 2.7.2p137

join使い方

joinを使用すると、配列内の値を総和を求めることが可能です。
※パフォーマンスは後述のsumの方がいいので、sumを使うのがお勧めです。

eval [配列].join("+")

以下は、配列内の値を総和を求めて表示するサンプルコードとなります。

arr=[1,2,3]

# evalはStringオブジェクトをコードとして評価
p eval arr.join("+")
# 6

# evalなしの実行結果
p arr.join("+")
# "1+2+3"

# 演算子を変えることも可能です
p eval arr.join("-")
# -4

文字列の場合は、join(“”)を使用して総和では全て結合することができます。

# 文字列の場合は以下で結合できます
arr=["A","B","C"]

p arr.join("")
# "ABC"

injectを使用しても、総和を求めることが可能です。

arr=[1, 2, 3]

p arr.inject(&:+)
# 6

二次元配列の場合も同様に、全てフラットな状態になった総和を求めることができます。

arr=[[1,2], [3,4]]

p eval arr.join("+")
# 10

sum

sumを使用することで、配列の総和を求めることも可能です。
パフォーマンスもsumの方が圧倒的にいいです。

arr = [1, 2, 3]

p arr.sum
# 6

文字列はエラーとなります。

arr = ["A","B","C"]

p arr.sum
# `+': String can't be coerced into Integer

二次元配列の場合もエラーとなります。

arr = [[1,2], [3,4]]

p arr.sum
# `+': Array can't be coerced into Integer