Aggiungere un libro
Fa parte della sezione Logica e flusso del percorso Ruby di Coddy. Lezione 29 di 56.
Aggiungi l’opzione 1. Add Book al ciclo del menu. Quando l’utente la seleziona, chiedigli il titolo, l’autore e il genere del libro, quindi inserisci un nuovo hash nell’array library.
Ogni libro inizia come non letto (read: false).
Sfida
FacileEstendi il ciclo del menu. Quando la scelta è "1":
printil promptTitle:e leggi il titoloprintAuthor:e leggi l'autoreprintGenre:e leggi il genere- Aggiungi un hash
{ title:, author:, genre:, read: false }alibrary - Stampa
Book added!
Mantieni il comportamento di 5. Exit della lezione precedente (stampa Goodbye! e interrompe il ciclo).
Per gli input 1, The Hobbit, Tolkien, Fantasy, poi 5, l'output termina con:
Choose an option: Title: Author: Genre: Book added!
--- Library Manager ---
...
Choose an option: Goodbye!Provalo tu
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: gestisci choice == "1", chiedi title/author/genre,
# aggiungi un hash a library, stampa "Book added!"
end
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Le stringhe in dettaglio
Panoramica dei metodi delle stringheInterpolazione di stringheIterare sulle stringheDividere e unireRiepilogo - Tessitore di stringhe4Blocchi, Proc e Lambda
Che cos’è un Block?do..end vs parentesi graffeLa keyword yieldParametri del BlockProc e LambdaRiepilogo - Iteratore personalizzato7Hash in Ruby - Parte 2
Hash.new con valori predefinitiIterare sugli hashHash annidatiUnire e trasformareRipasso - Contatore di frequenza10Progetto - Registri degli studenti
Panoramica del progettoAggiungere uno studente2Intervalli
Che cos'è un intervallo?Metodi degli intervalliIntervalli in Case / WhenRiepilogo - Esercitarsi con gli intervalli5La potenza di Enumerable
Select e RejectConcatenare MapReduce / Injectcount, all?, any?, none?group_by e partitionsort_by, min_by, max_byRiepilogo - Pipeline di dati3Array bidimensionali
Basi degli array 2DAccesso agli elementi 2DIterare sugli array 2DPattern comuni con array 2DRiepilogo - Operazioni sulle matrici6Progetto - Gestore della biblioteca
Panoramica del progettoAggiungere un libroEsercitati da solo: Compilatore Ruby online