LoginSignup
4
1

More than 5 years have passed since last update.

ruby injectメソッド

Last updated at Posted at 2016-03-13
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たち)を足していくって感じですかね。

 参考

inject (Enumerable)

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1