Menu
Coddy logo textTech

Recapitulação - Iterador Customizado

Parte da seção Lógica e Fluxo do Journey de Ruby da Coddy — lição 20 de 56.

Construa seu próprio método iterador que utiliza yield, aceita um bloco e retorna um valor útil, combinando tudo deste capítulo.

challenge icon

Desafio

Médio

Defina um método chamado each_even que recebe um array numbers e faz o yield de cada número par no array para o seu bloco (pulando números ímpares inteiramente).

Em seguida, leia uma lista de inteiros separados por vírgula, chame each_even nela com um bloco que imprime "Even: <n>" para cada valor retornado e, finalmente, imprima:

Done: <count>

Onde count é a quantidade de números pares que foram retornados.

Para a entrada 1,2,3,4,5,6, a saída é:

Even: 2
Even: 4
Even: 6
Done: 3

Experimente você mesmo

# TODO: defina each_even(numbers) que produz cada número par

numbers = gets.chomp.split(",").map(&:to_i)
count = 0

# TODO: chame each_even com um bloco que imprime "Even: <n>"
# e incrementa count para cada valor produzido

puts "Done: #{count}"

Todas as lições de Lógica e Fluxo