Modifier des Hashes
Fait partie de la section Fondamentaux du Journey Ruby de Coddy. Leçon 75 sur 88.
Les tables de hachage ne sont pas statiques une fois créées. Tu peux ajouter de nouvelles paires clé-valeur, mettre à jour des valeurs existantes et supprimer des entrées pendant l’exécution de ton programme.
Pour ajouter une nouvelle paire ou mettre à jour une valeur existante, affecte une valeur à la clé à l’aide de crochets :
person = {"name" => "Alice", "age" => 25}
person["city"] = "Paris" # Ajoute une nouvelle paire clé-valeur
person["age"] = 26 # Met à jour la valeur existante
puts person # Affiche : {"name"=>"Alice", "age"=>26, "city"=>"Paris"}Si la clé existe, la valeur est remplacée. Si elle n’existe pas, une nouvelle paire est ajoutée au hachage.
Pour supprimer une paire clé-valeur, utilisez la méthode delete avec la clé que vous souhaitez supprimer :
person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
person.delete("city")
puts person # Affiche : {"name"=>"Alice", "age"=>25}La méthode delete renvoie la valeur qui a été supprimée, ce qui peut être utile si tu as besoin de l’utiliser :
person = {"name" => "Alice", "age" => 25}
removed_age = person.delete("age")
puts removed_age # Affiche : 25Si tu essaies de supprimer une clé qui n’existe pas, Ruby renvoie simplement nil sans déclencher d’erreur.
Défi
FacileLisez quatre lignes d’entrée :
- Un nom d’étudiant (chaîne de caractères)
- Une note initiale (entier)
- Une nouvelle note à attribuer (entier)
- Une nouvelle paire clé-valeur au format
key:value(par exemple,subject:Math)
Créez un hachage appelé student avec les paires clé-valeur initiales suivantes :
"name"associé au nom de l’étudiant"grade"associé à la note initiale (en tant qu’entier)
Effectuez ensuite les modifications suivantes :
- Mettez à jour la clé
"grade"avec la nouvelle note - Ajoutez une nouvelle paire clé-valeur à l’aide de la clé et de la valeur de la quatrième ligne d’entrée (la valeur doit rester une chaîne de caractères)
- Supprimez la clé
"name"du hachage et stockez la valeur supprimée
Affichez le nom supprimé sur la première ligne, puis le hachage final sur la deuxième ligne.
Par exemple, si les entrées sont Alice, 85, 92 et subject:Math, la sortie doit être :
Alice
{"grade"=>92, "subject"=>"Math"}Si les entrées sont Bob, 70, 75 et status:passing, la sortie doit être :
Bob
{"grade"=>75, "status"=>"passing"}Si les entrées sont Charlie, 100, 95 et note:excellent, la sortie doit être :
Charlie
{"grade"=>95, "note"=>"excellent"}Essayez vous-même
# Lire les données d’entrée
name = gets.chomp
initial_grade = gets.to_i
new_grade = gets.to_i
key_value_pair = gets.chomp
# TODO: Écrivez votre code ci-dessous
# 1. Créez un hash appelé 'student' avec les clés "name" et "grade"
# 2. Mettez à jour la clé "grade" avec la nouvelle note
# 3. Analysez key_value_pair et ajoutez-le au hash
# 4. Supprimez la clé "name" et stockez la valeur supprimée
# Affichez le nom supprimé
puts removed_name
# Affichez le hash final
puts studentCette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fondamentaux
4Opérateurs, partie 2
Opérateurs logiques, partie 1Opérateurs logiques, partie 2Récapitulatif - Logique simpleOpérateurs logiques, partie 3Opérateurs logiques, partie 47Calculateur de partage de facture
Message de bienvenueSaisie de l'utilisateur10FizzBuzz avec une variante
Présentation du jeuLa méthode FizzBuzz2Variables et types de données
Nombres et variablesType de données StringType de données BooleanType de données SymbolVérification des types de donnéesConventions de nommageRécapitulatif - Création de variables5Prise de décision
Instruction IfIf - ElseRécapitulatif - Calculatrice simpleIf - Else imbriquésInstruction Unless8Boucles
Boucle For avec des intervallesBoucle WhileBreakNextRécapitulatif - FactorielleBoucle TimesBoucle UntilBoucles imbriquéesRécapitulatif - Entrée dynamique11Tableaux
Création de tableauxAccès aux éléments d'un tableauModification de tableauxMéthodes de tableauxRécapitulatif - Tableau de produitsRécapitulatif - Tableau inverséRaccourcis pour les tableaux14Les Hashes
Créer des HashesAccéder aux éléments d'un HashModifier des HashesMéthodes de HashRécapitulatif - Hash de produitLes symboles comme clés de Hash3Les opérateurs, partie 1
Opérateurs arithmétiquesOpérateur moduloRaccourcis arithmétiquesRécapitulatif - Calculs simplesOpérateurs de comparaison6Entrées/Sorties de base
Sortie avec putsSortie avec print et pSortie avec des variablesEntrée avec getsLa méthode chompConversion de typesRécapitulatif - Calculateur d'âgeRécapitulatif - Vrai ou Faux9Méthodes
Définir une méthodeParamètres de méthodeValeurs de retourRécapitulatif - Méthode SigmaRécapitulatif - Méthode de validationValeurs de paramètres par défaut12Itérer sur les collections
L'itérateur EachEach avec indexItérer sur les chaînes de caractèresMap et CollectEntraînez-vous par vous-même : Compilateur Ruby en ligne