ExpertiDict

Ruby · Intermediário · Inglês · Técnico

inject

/ɪnˈdʒɛkt/método

Método de Enumerable que acumula os elementos num único valor, passando o acumulador e cada item ao bloco. Também aceita um símbolo de operador, como inject(:+).

Onde usar

Aparece ao somar, achatar ou montar um valor a partir de uma lista. Hoje sum e each_with_object costumam ser mais claros nos casos comuns.

Em código

p [1, 2, 3, 4].inject(:+)  # => 10
p [1, 2, 3].inject(10) { |s, n| s + n }
# => 16
p [].inject(:+)  # => nil
p [].inject(0, :+)  # => 0

Exemplos

I used inject to add up the order totals.

Usei inject para somar os totais dos pedidos.

Inject on an empty list returns nil without an initial value.

Inject em lista vazia devolve nil sem valor inicial.

Cuidado

Sem valor inicial, o primeiro elemento vira o acumulador, e em lista vazia o resultado é nil.

Sinônimos

reduce

Veja também

Todos os termos de Ruby