Menu
Coddy logo textTech

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. Vous pouvez ajouter de nouvelles paires clé-valeur, mettre à jour des valeurs existantes et supprimer des entrées pendant l'exécution de votre programme.

Pour ajouter une nouvelle paire ou mettre à jour une valeur existante, assignez à la clé en utilisant des 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 hash.

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 retourne la valeur qui a été supprimée, ce qui peut être utile si vous avez besoin de l'utiliser :

person = {"name" => "Alice", "age" => 25}

removed_age = person.delete("age")

puts removed_age  # Affiche : 25

Si vous essayez de supprimer une clé qui n'existe pas, Ruby retourne simplement nil sans lever 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 à mettre à jour (entier)
  4. Une nouvelle paire clé-valeur au format key:value (par exemple, subject:Math)

Créez un hash 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)

Ensuite, effectuez ces modifications :

  1. Mettez à jour la clé "grade" avec la nouvelle valeur de la note
  2. Ajoutez une nouvelle paire clé-valeur en utilisant la clé et la valeur de la quatrième entrée (la valeur doit rester une chaîne de caractères)
  3. Supprimez la clé "name" du hash et stockez la valeur supprimée

Affichez le nom supprimé sur la première ligne, puis affichez le hash final sur la deuxième ligne.

Par exemple, si les entrées sont Alice, 85, 92, et subject:Math, la sortie devrait être :

Alice
{"grade"=>92, "subject"=>"Math"}

Si les entrées sont Bob, 70, 75, et status:passing, la sortie devrait être :

Bob
{"grade"=>75, "status"=>"passing"}

Si les entrées sont Charlie, 100, 95, et note:excellent, la sortie devrait être :

Charlie
{"grade"=>95, "note"=>"excellent"}

Aide-mémoire

Pour ajouter une nouvelle paire clé-valeur ou mettre à jour une valeur existante dans un hash, utilisez des 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.

Pour supprimer une paire clé-valeur, utilisez la méthode delete :

person = {"name" => "Alice", "age" => 25, "city" => "Paris"}

person.delete("city")

puts person  # Affiche : {"name"=>"Alice", "age"=>25}

La méthode delete retourne la valeur supprimée :

removed_age = person.delete("age")

puts removed_age  # Affiche : 25

Si vous essayez de supprimer une clé qui n'existe pas, Ruby retourne nil sans lever d'erreur.

Essayez vous-même

# Lire l'entrée
name = gets.chomp
initial_grade = gets.to_i
new_grade = gets.to_i
key_value_pair = gets.chomp

# À FAIRE : Écrivez votre code ci-dessous
# 1. Créer un hash appelé 'student' avec les clés "name" et "grade"
# 2. Mettre à jour la clé "grade" avec la nouvelle valeur de note
# 3. Analyser la variable key_value_pair et l'ajouter au hash
# 4. Supprimer la clé "name" et stocker la valeur supprimée

# Afficher le nom supprimé
puts removed_name
# Afficher 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