Añadir libro
Parte de la sección Lógica y flujo del Journey de Ruby de Coddy. Lección 29 de 56.
Añade la opción 1. Add Book al bucle del menú. Cuando el usuario la elija, solicita el título, el autor y el género del libro y después inserta un nuevo hash en el arreglo library.
Cada libro comienza sin leer (read: false).
Desafío
FácilExtiende el loop del menú. Cuando la opción (choice) sea "1":
- Haz
printdelpromptTitle:y lee eltitle - Haz
printdeAuthor:y lee elauthor - Haz
printdeGenre:y lee elgenre - Haz
pushde unhash{ title:, author:, genre:, read: false }intolibrary - Imprime
Book added!
Mantén el comportamiento de 5. Exit de la lección anterior (imprime Goodbye! y rompe el ciclo).
Para las entradas 1, The Hobbit, Tolkien, Fantasy, y después 5, la salida termina con:
Choose an option: Title: Author: Genre: Book added!
--- Library Manager ---
...
Choose an option: Goodbye!Pruébalo tú mismo
library = []
loop do
puts "--- Library Manager ---"
puts "1. Add Book"
puts "2. Search By Title"
puts "3. Filter By Genre"
puts "4. Mark As Read"
puts "5. Exit"
print "Choose an option: "
choice = gets.chomp
if choice == "5"
puts "Goodbye!"
break
end
# TODO: manejar choice == "1", solicitar title/author/genre,
# añadir un hash a library, imprimir "Book added!"
end
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
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 datos3Matrices 2D
Fundamentos de matrices 2DAcceso a elementos 2DRecorrido de matrices 2DPatrones comunes en 2DRepaso - Operaciones con matrices6Proyecto - Gestor de biblioteca
Descripción general del proyectoAñadir libroPractica por tu cuenta: Compilador de Ruby online