Rubyのinjectの使い方

✏️️ 2019/11/30 👍️2019/11/30 🔗

injectとは

繰り返し計算を行うためMethodです。

Object.inject(resultの初期値) {|result, i| block }

合計値を出す場合

injectを使わない場合

> sum = 0
> (1..100).each{|i| sum += i }
> p sum
=> 5050

injectを利用すると

> [1,2,3].inject(0){|sum, i| sum + i }
=> 6

> [1,2,3].inject{|sum, i| sum + i }
=> 6

> [1,2,3].inject(:+)
=> 6

使用例

def sum(numbers)
  Array.wrap(numbers).inject(0, :+)
end

> p sum([1,2,3])
=> 6
> p sum(1)
=> 1
> p sum(nil)
=> 0

akito
日本のスタートアップで主にRuby on Railsを使ってプロダクト開発をしています。