Ruby · Intermediário · Inglês · Técnico
Enumerator
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