Ajouter un livre
Fait partie de la section Logique et Flux du Journey Ruby de Coddy. Leçon 29 sur 56.
Ajoutez l’option 1. Add Book à la boucle du menu. Lorsque l’utilisateur la sélectionne, demandez le titre, l’auteur et le genre du livre, puis ajoutez un nouveau hash au tableau library.
Chaque livre commence non lu (read: false).
Défi
FacileÉtendez la boucle du menu. Lorsque le choice est "1" :
printlepromptTitle:et lisez letitleprintAuthor:et lisez l'authorprintGenre:et lisez legenre- Effectuez un
pushd'unhash{ title:, author:, genre:, read: false }intolibrary - Affichez
Book added!
Conservez le comportement du 5. Exit de la leçon précédente (affiche Goodbye! et interrompt la boucle avec loop/break).
Pour les entrées 1, The Hobbit, Tolkien, Fantasy, puis 5, la sortie se termine par :
Choose an option: Title: Author: Genre: Book added!
--- Library Manager ---
...
Choose an option: Goodbye!Essayez vous-même
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: gérer choice == "1", demander title/author/genre,
# pousser un hash dans library, afficher "Book added!"
end
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique et Flux
1Les chaînes de caractères en profondeur
Aperçu des méthodes de chaînesInterpolation de chaînesParcourir les chaînesSplit et JoinRécapitulatif - Tisseur de chaînes4Blocs, Procs et Lambdas
Qu'est-ce qu'un bloc ?do..end ou accoladesLe mot-clé yieldParamètres de blocProcs et LambdasRécapitulatif - Itérateur personnalisé7Hashes, 2e partie
Hash.new avec valeurs par défautParcourir les hashesHashes imbriquésFusionner et transformerRécapitulatif - Compteur de fréquences10Projet - Dossiers des étudiants
Présentation du projetAjouter un étudiant2Plages
Qu’est-ce qu’une plage ?Méthodes des plagesPlages dans Case / WhenRécapitulatif - Exercices sur les plages5Puissance des Enumerable
Select et RejectChaînage de MapReduce / Injectcount, all?, any?, none?group_by et partitionsort_by, min_by, max_byRécapitulatif - Pipeline de données3Tableaux 2D
Bases des tableaux 2DAccéder aux éléments 2DParcourir les tableaux 2DMotifs courants en 2DRécapitulatif - Opérations sur les matrices6Projet - Gestionnaire de bibliothèque
Vue d’ensemble du projetAjouter un livreEntraînez-vous par vous-même : Compilateur Ruby en ligne