Repaso: iterador personalizado
Parte de la sección Lógica y flujo del Journey de Ruby de Coddy. Lección 20 de 56.
Construye tu propio método iterador que use yield, acepte un bloque y devuelva un valor útil, combinando todo lo de este capítulo.
Desafío
IntermedioDefine un método llamado each_even que reciba un array numbers y proporcione cada número par del array a su bloque (omitiendo por completo los números impares).
Después, lee una lista de enteros separados por comas, llama a each_even con un bloque que imprime "Even: <n>" por cada valor proporcionado y, finalmente, imprime:
Done: <count>Donde count es cuántos números pares se proporcionaron.
Para la entrada 1,2,3,4,5,6, la salida es:
Even: 2
Even: 4
Even: 6
Done: 3Pruébalo tú mismo
# TODO: define each_even(numbers) que produzca cada número par
numbers = gets.chomp.split(",").map(&:to_i)
count = 0
# TODO: llama a each_even con un bloque que imprima "Even: <n>"
# e incremente count por cada valor producido
puts "Done: #{count}"
Todas las lecciones de Lógica y flujo
1Cadenas en profundidad
Descripción general de los métodos de cadenasInterpolación de cadenasIteración sobre cadenasSeparar y unirRepaso: Tejedor de cadenas4Bloques, Procs y Lambdas
¿Qué es un bloque?do..end frente a llavesLa palabra clave yieldParámetros de bloqueProcs y LambdasRepaso: iterador personalizado7Hashes Parte 2
Hash.new con valores predeterminadosIteración de hashesHashes anidadosCombinación y transformaciónRepaso: contador de frecuencias10Proyecto - Registros de estudiantes
Descripción general del proyectoAgregar estudiante5Potencia Enumerable
Select y RejectEncadenamiento de MapReduce / Injectcount, all?, any?, none?group_by y partitionsort_by, min_by, max_byRepaso: canalización de datosPractica por tu cuenta: Compilador de Ruby online