配列の要素の総和

最初は
[ruby]
a = [1,2,3]
sum = 0
a.each{|i| sum += i}
[/ruby]
とかやっていて,どうもいまいちだなあと思って,しばし考えた後こうしてみた。

sum = eval(a.join("+"))

だいぶスマートになったけど,よくよく考えると joinというメソッドは加算とはぜんぜん関係ないだけに,ぱっと見,総和を出しているようには見えない。結局理想形は

sum = a.sum

という風に書ける Array#sumを定義すればいいんだろうけど,メソッド定義するほど大げさなものでもないので,つまるところ eval方式に落ち着いた。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください