ExpertiDict

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

each with object

/itʃ wɪð ˈɑbdʒɛkt/método

Método de Enumerable que percorre os itens passando cada um e um objeto acumulador que você escolhe, devolvendo esse objeto no fim. Útil para montar hashes e arrays.

Onde usar

Aparece quando inject ficaria confuso por exigir devolver o acumulador a cada passo. Costuma começar com um hash ou array vazio e preenchê-lo.

Em código

nomes = %w[ana bia]
h = nomes.each_with_object({}) do |n, acc|
  acc[n] = n.length
end
p h["ana"]  # => 3
p h.size  # => 2

Exemplos

I built the lookup hash with each_with_object.

Montei o hash de consulta com each_with_object.

Each with object returns the accumulator, not the list.

O each_with_object devolve o acumulador, não a lista.

Cuidado

Cuidado com a ordem dos parâmetros: o item vem primeiro e o acumulador depois, o inverso de inject.

Veja também

Todos os termos de Ruby