Menu
CoddyTech

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 : 25

Si tu essaies de supprimer une clé qui n’existe pas, Ruby renvoie simplement nil sans déclencher d’erreur.

challenge icon

Défi

Facile

Lisez quatre lignes d’entrée :

  1. Un nom d’étudiant (chaîne de caractères)
  2. Une note initiale (entier)
  3. Une nouvelle note à attribuer (entier)
  4. 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 :

  1. Mettez à jour la clé "grade" avec la nouvelle note
  2. 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)
  3. 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 student
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Fondamentaux

Entraînez-vous par vous-même : Compilateur Ruby en ligne