ExpertiDict

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

Enumerator

/ɪˈnumɚˌeɪtɚ/substantivo

Objeto que representa uma sequência percorrível sob demanda, com next, ou o iterador devolvido por métodos chamados sem bloco. Permite criar sequências infinitas e controlar a iteração à mão.

Onde usar

Aparece quando um método de iteração é chamado sem bloco ou ao gerar valores com Enumerator.new. Combina com lazy para fluxos grandes ou infinitos.

Em código

fib = Enumerator.new do |y|
  a, b = 0, 1
  loop { y << a; a, b = b, a + b }
end
p fib.next  # => 0
p fib.next  # => 1
p fib.take(6)  # => [0, 1, 1, 2, 3, 5]

Exemplos

I wrapped the generator in an Enumerator.

Embrulhei o gerador em um Enumerator.

Call next on the enumerator to get the following value.

Chame next no enumerator para pegar o valor seguinte.

Cuidado

Não o confunda com Enumerable, que é o módulo de métodos; Enumerator é uma classe que o inclui.

Sinônimos

iterador

Veja também

Todos os termos de Ruby