
Comment créer un Hash et accéder à ses valeurs par la clé
Passez de la théorie à la pratique avec les Hashes en Ruby. Vous apprendrez la syntaxe exacte pour créer un dictionnaire et la méthode simple pour récupérer n'importe quelle valeur en utilisant sa clé. C'est une compétence fondamentale pour manipuler des
Etape 1 : Créer un Hash avec la syntaxe moderne
La création d'un Hash est une opération que vous effectuerez constamment. Pour cet exemple, nous allons modéliser un objet simple du monde réel : une voiture. Une voiture possède des propriétés claires comme une couleur, une marque et une année. C'est le cas d'usage parfait pour un Hash.
Nous utilisons les accolades {} pour délimiter le Hash et la syntaxe moderne cle: valeur pour définir chaque paire. Chaque clé est un Symbole, ce qui est la convention en Ruby.
# Création d'un Hash pour représenter une voiture
car = {
brand: "Peugeot",
model: "208",
year: 2021,
color: "rouge"
}A cet instant, la variable car contient un objet Hash. A l'intérieur, le Symbole :brand est associé à la chaîne de caractères "Peugeot", le Symbole :year au nombre 2021, et ainsi de suite. Le principal avantage est déjà visible : ce code est auto-documenté. On comprend immédiatement la signification de chaque valeur, contrairement à un tableau comme ["Peugeot", "208", 2021, "rouge"].
Etape 2 : Accéder à une valeur en utilisant sa clé
Maintenant que notre Hash est créé, comment récupérer une information spécifique ? L'opération est aussi intuitive que pour un tableau, mais au lieu d'un index numérique, nous utilisons la clé qui nous intéresse.
La syntaxe est nom_du_hash[:cle_souhaitee]. On utilise les crochets [], tout comme pour un tableau, mais on y place le Symbole qui sert de clé.
# Récupérons la marque de la voiture
puts car[:brand] # Affiche : Peugeot
# Récupérons l'année de la voiture
puts car[:year] # Affiche : 2021Conseil pro : C'est là que la puissance des Hashes devient évidente. L'accès aux données est sémantique. Lire car[:color] est infiniment plus clair et moins sujet aux erreurs que de devoir se souvenir que la couleur est le quatrième élément d'un tableau, à l'index 3. C'est un gain majeur pour la maintenabilité du code.Que se passe-t-il si une clé n'existe pas ?
Vous vous demandez sûrement ce qui arrive si vous essayez d'accéder à une clé qui n'a pas été définie dans le Hash, par exemple le kilométrage de notre voiture. C'est une excellente question qui met en lumière une autre similarité avec les tableaux.
Tout comme pour un index de tableau qui est hors limites, Ruby ne génère pas d'erreur. A la place, il retourne la valeur nil, qui représente l'absence de valeur. Ce comportement prévisible est très utile pour éviter de faire planter un programme.
# Tentative d'accès à une clé inexistante
mileage = car[:mileage]
puts mileage.inspect # Affiche : nilSavoir cela vous permet d'écrire du code défensif. Vous pouvez par exemple vérifier si une clé existe avant d'effectuer une opération : if car[:mileage] ... end.
Etape 3 : Ajouter ou modifier une paire clé-valeur
La syntaxe pour ajouter une nouvelle paire clé-valeur à un Hash existant est la même que pour en modifier une. On cible la clé avec les crochets et on utilise l'opérateur d'assignation =.
Si la clé n'existe pas, la paire est ajoutée au Hash. Si la clé existe déjà, son ancienne valeur est simplement écrasée par la nouvelle.
# Modifions l'année de la voiture (la clé :year existe déjà)
car[:year] = 2022
# Ajoutons un kilométrage (la clé :mileage n'existait pas)
car[:mileage] = 15000
# Vérifions l'état final de notre Hash
puts car.inspect
# Affiche : {:brand=>"Peugeot", :model=>"208", :year=>2022, :color=>"rouge", :mileage=>15000}Cette flexibilité rend les Hashes extrêmement pratiques pour construire des structures de données de manière dynamique, en y ajoutant des informations au fur et à mesure de l'exécution du programme.