合計を計算するときとか

sum = 0
(1..10).each {|n| sum += n}
puts sum  # => 55

よくこんな感じのコードを書いてます。

inject()を用いてこのようにかけるみたいです。

puts (1..10).inject(0) {|sum, n| sum + n}   # => 55

ループでの計算結果を入れる変数が、ブロックの中で済んでいるのでスッキリですね。

これからinjectたくさん使っていこうと思います。

追記

# 以下同じ
p (1..10).inject(0) {|count, n| count + n}
p (0..10).inject {|count, n| count + n}
p (1..10).inject(:+)

3つ目すげぇ短い!!

引用

http://d.hatena.ne.jp/kenkitii/20090114/ruby_inject
http://naoty.hatenablog.com/entry/20110726/1311691890