※この記事は読者によって投稿されたユーザー投稿のため、編集部の見解や意向と異なる場合があります。 また、編集部はこの内容について正確性を保証できません。
ヒューマンリソシア株式会社はコラム「配列の美学(2)」を公開しました。 Arrayクラスのメソッド Arrayクラスのメソッドはいくつもありますが、非常に便利なものが沢山あります。例えば、「injectメソッド」はその典型ではないでしょうか。例えば、1から100までの合計を計算したいとします。プログラムの条件として配列を利用することにすると、普通の言語では以下のようなプログラムになると思います。配列を初期化して、eachメソッドで配列に順次アクセスして合計を表示しています。 リスト1 1 # -*- coding:utf-8 -*- 2 3 n=1 4 numbers = Array.new() 5 while ( n = 100 ) do 6   numbers n 7   n += 1 8 end 9 10 sum = 0 11 numbers.each do |n| 12   sum += n 13 end 14 15 puts sum injectメソッド 「injectメソッド」を利用すれば、リスト1の10行目から13行目は1行で済むのです。 リスト2(1行目から9行目はリスト1と同様) 10 puts numbers.inject(:+) 更に、配列の表現方法を利用すると1から100まで合計の計算は実は1行で済みます。 リスト3(1から2行目はリストと同様) 3 puts (1..100).inject(:+) 実に簡単ですね。「injectメソッド」は畳み込み処理を行います。畳込み処理とは、リスト1の10行目から13行目のような処理を言いますが、詳しくは、Rubyのリファレンス・マニュアル(http://doc.ruby-lang.org/ja/1.9.3/class/Enumerable.html)のinjectメソッドの説明を御覧ください。 この続きは以下をご覧くださいhttp://resocia.jp/column/343/

人気記事トップ10

人気記事ランキングをもっと見る