
Exemple : modéliser une voiture avec ses propriétés (couleur, marque)
Découvrez un exemple concret pour maîtriser les Hashes en Ruby. Apprenez pas à pas à modéliser une voiture avec ses propriétés (marque, couleur, année). Cette compétence est essentielle pour structurer vos données et écrire du code plus lisible.
Le défi : représenter un objet du monde réel
La théorie est une chose, mais la programmation prend tout son sens lorsqu'elle nous aide à résoudre des problèmes concrets. Notre défi est simple : comment représenter informatiquement un objet du monde réel comme une voiture ? Une voiture n'est pas une simple valeur, c'est un ensemble de propriétés : une marque, un modèle, une couleur, une année, etc.
Nous pourrions être tentés d'utiliser un tableau, comme ceci : ["Peugeot", "208", 2021, "rouge"]. Mais cette approche a des faiblesses majeures. Que représente le troisième élément ? L'année ou le prix ? Si nous ajoutons une nouvelle information, où doit-elle aller ? Ce code est ambigu et fragile. Chaque fois que nous l'utilisons, nous devons nous souvenir de l'ordre exact des éléments.
C'est précisément pour résoudre ce problème d'ambiguïté que le Hash est l'outil parfait. Il nous permet d'associer une étiquette explicite (une clé) à chaque morceau d'information (une valeur), rendant notre structure de données claire et robuste.
Etape 1 : Construire le Hash de la voiture
Mettons cela en pratique. Nous allons créer une variable car et lui assigner un Hash qui décrit notre voiture. Nous utilisons la syntaxe moderne avec les accolades {} et les paires cle: valeur. Chaque clé sera un Symbole pour suivre les conventions de Ruby.
Voici le code pour modéliser notre voiture :
# On modélise une voiture en utilisant un Hash.
# Chaque propriété devient une clé-symbole pour une lisibilité maximale.
car = {
brand: "Peugeot",
model: "208",
year: 2021,
color: "rouge",
is_manual_gearbox: true
}Analysons ce que nous venons de faire. Nous n'avons pas une simple liste, mais une collection de faits structurés. Le Symbole :brand est explicitement lié à la chaîne de caractères "Peugeot". Le Symbole :year est lié au nombre 2021. Il n'y a aucune place au doute. C'est un premier pas fondamental vers la programmation orientée objet, où l'on cherche à modéliser des concepts.
Etape 2 : Accéder aux informations de manière sémantique
Maintenant que notre voiture est modélisée, nous pouvons facilement extraire les informations dont nous avons besoin. Pour cela, nous utilisons la syntaxe nom_du_hash[:cle]. L'accès aux données n'est plus basé sur une position arbitraire, mais sur le nom de la propriété que nous recherchons.
Imaginons que nous voulions afficher la marque et l'année de la voiture :
puts "Le modèle de la voiture est : #{car[:model]}"
puts "Son année de fabrication est : #{car[:year]}"L'exécution de ce code affichera :
Le modèle de la voiture est : 208
Son année de fabrication est : 2021Conseil pro : Le gain principal ici est la lisibilité. Lorsque vous ou un autre développeur relirez ce code dans six mois, car[:model] sera immédiatement compréhensible. Votre code se documente lui-même, ce qui est une caractéristique d'un code de haute qualité et facile à maintenir.