Añadir libro
Parte de la sección Lógica y flujo del Journey de Ruby de Coddy. Lección 29 de 56.
Agrega la option 1. Add Book al loop de menú. Cuando el usuario la elija, solicita el title, author y genre del libro, después haz push de un nuevo hash dentro del array 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
1Strings en profundidad
Visión general de los métodos de StringInterpolación de StringsIterar sobre StringsSplit y JoinRepaso - String Weaver4Bloques, Procs y Lambdas
¿Qué es un bloque?do..end vs llavesLa palabra clave yieldParámetros de bloqueProcs y LambdasResumen - Iterador personalizado7Hashes Parte 2
Hash.new con valores por defectoIteración de HashesHashes anidadosFusión y transformaciónResumen - Contador de frecuencia10Proyecto - Registros de Estudiantes
Descripción general del proyectoAgregar estudiante5Potencia de Enumerable
Select y RejectEncadenando MapReduce / Injectcount, all?, any?, none?group_by y partitionsort_by, min_by, max_byResumen - Data Pipeline3Arreglos 2D
Conceptos básicos de arreglos 2DAcceso a elementos 2DIteración sobre arreglos 2DPatrones comunes en 2DResumen - Operaciones con matrices6Proyecto - Gestor de biblioteca
Descripción general del proyectoAñadir libroPractica por tu cuenta: Compilador de Ruby online