sum = 0
[1,2,3,4,5].each do |i|
p sum = sum + i
end
1
3
6
10
15
injectだと
p sum = [1,2,3,4,5].inject(:+)
15
ブロックが最後に渡した値が返り値になります。
要素1が要素2に渡され、
要素2が要素3に渡されます。
1 が 2 に渡され 3になり、
3 が 3 に渡され 6になり、
6 が 4 に渡され 10 になり、
10 が 5に渡され 15になり
15が帰るということです。
違った例 配列の数値を合計していく
num = [4,5,6,7,8,9]
puts num.inject(0) {|sum,n| sum + n}
39
これもsumに要素(nたち)を足していくって感じですかね。