Revisão - Iterador Personalizado
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.
Desafio
MédioDefina um método chamado each_even que recebe um array numbers e produz cada número par do array para o bloco correspondente (ignorando completamente os números ímpares).
Depois, leia uma lista de inteiros separados por vírgulas, chame each_even com um bloco que imprime "Even: <n>" para cada valor produzido e, por fim, imprima:
Done: <count>Onde count é a quantidade de números pares produzidos.
Para a entrada 1,2,3,4,5,6, a saída é:
Even: 2
Even: 4
Even: 6
Done: 3Experimente 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
1Strings em Profundidade
Visão Geral dos Métodos de StringInterpolação de StringsPercorrendo StringsDividir e UnirRecapitulação - String Weaver4Blocos, Procs e Lambdas
O que é um Bloco?do..end vs ChavesA Palavra-chave yieldParâmetros de BlocoProcs e LambdasRevisão - Iterador Personalizado7Hashes - Parte 2
Hash.new com Valores PadrãoIterando sobre HashesHashes AninhadosMesclando e TransformandoRecapitulação - Contador de Frequência10Projeto - Registros de Alunos
Visão Geral do ProjetoAdicionar Aluno2Intervalos
O que é um intervalo?Métodos de intervaloIntervalos em Case / WhenRevisão - Prática com intervalos5Potência do Enumerable
Select e RejectEncadeando MapReduce / Injectcount, all?, any?, none?group_by e partitionsort_by, min_by, max_byRecapitulação - Pipeline de DadosPratique por conta própria: Compilador de Ruby online