Définition
Hash
Un Hash en Ruby est une collection de paires clé-valeur, semblable à un dictionnaire en d'autres langages. Il stocke des objets sous la forme de {'cle' => 'valeur'}.
Clé
Dans un Hash, une clé est un objet unique qui sert d'index pour accéder à une valeur dans le Hash.
Valeur
Dans un Hash, une valeur est l'objet associé à une clé donnée. Elle peut être de n'importe quel type.
Création et Initialisation des Hashes
Pour créer un Hash, vous pouvez utiliser les accolades {} ou la méthode Hash.new. Lorsque vous utilisez {}, vous pouvez directement spécifier les paires clé-valeur. Par exemple, un Hash vide peut être initialisé avec {}. Pour un Hash non vide:
ruby
mon_hash = { 'nom' => 'Alice', 'age' => 30 }
Cela crée un Hash avec deux paires clé-valeur. Vous pouvez également utiliser des symboles comme clés:
ruby
mon_hash = { nom: 'Alice', age: 30 }
Alternativement, vous pouvez initialiser un Hash avec la méthode Hash.new:
ruby
mon_hash = Hash.new
Cette méthode crée un Hash vide. Vous pouvez également définir une valeur par défaut qui sera retournée pour toute clé non présente dans le Hash:
ruby
mon_hash = Hash.new("valeur_par_defaut")
Manipulation des Hashes
Les Hashes en Ruby sont extrêmement flexibles. Pour ajouter ou modifier une paire clé-valeur, vous pouvez simplement assigner une valeur à une clé:
ruby
mon_hash['adresse'] = 'Paris'
Pour accéder à une valeur, utilisez sa clé:
ruby
nom = mon_hash['nom']
Cela retournera "Alice" si 'nom' est une clé existante. Pour vérifier si un Hash contient une certaine clé, vous pouvez utiliser la méthode `has_key?`:
ruby
mon_hash.has_key?('age')
Cela retourne true si 'age' est une clé du Hash.
Itération sur les Hashes
Vous voudrez souvent parcourir toutes les paires clé-valeur dans un Hash. Ceci se fait généralement avec la méthode `each`:
ruby
mon_hash.each do |cle, valeur|
puts "#{cle} est #{valeur}"
end
Cette syntaxe appelle le bloc de code avec la clé et la valeur de chaque paire dans le Hash. Il existe d'autres méthodes utiles telles que `each_key` et `each_value`, qui itèrent respectivement sur les clés et les valeurs du Hash uniquement.
Suppression d'éléments dans les Hashes
Pour supprimer une paire clé-valeur d'un Hash, vous pouvez utiliser la méthode `delete`:
ruby
mon_hash.delete('nom')
Cela retirera la clé 'nom' et sa valeur associée du Hash. Si vous essayez d'accéder à une clé supprimée, meilleure vaut la méthode `delete_if` qui prend un bloc et supprime toutes les paires pour lesquelles le bloc retourne true:
ruby
mon_hash.delete_if { |cle, valeur| valeur == 'Paris' }
Cela retirera toutes les paires clé-valeur où la valeur est 'Paris'.
A retenir :
Les Hashes en Ruby sont des structures de données puissantes pour gérer des collections de paires clé-valeur. Vous pouvez les créer avec des accolades ou la méthode Hash.new, manipuler les données stockées, itérer à travers les pairs, et supprimer des éléments selon vos critères. Les fonctionnalités avancées, comme le merging de Hashes ou l'utilisation de blocs avec `fetch`, ajoutent de la flexibilité aux opérations que vous pouvez accomplir avec des Hashes. Ils sont essentiels à comprendre pour gérer efficacement les données structurées en Ruby.
