17-06-2009, 06:42 PM
Les tableaux associatifs
Les tableaux associatifs, plus souvent appelés hashes, sont très proches de tableaux vus précédemment. La différence est qu'au lieu d'avoir une clé numérique, la clé peut ici être une chaîne, un symbole ou un entier (d'autres données peuvent être utilisées, mais nous ne l'aborderont pas dans le cours).
Déclaration d'un hash
Les symboles forment un type de données bien particulier, nous ne les étudierons pas pour le moment. Nous les utiliseront cependant en tant que clé pour les gains de performances qu'ils apportent par rapport à d'autres types de clés.
Un symbole se note de la même façon qu'une variable, à la différence près qu'il est précédé du caractère deux points (, comme ce ymbole !
Voici la déclaration d'un hash :
Par rapport aux tableaux, deux différences majeurs :
Accéder et modifier des éléments
Pour accéder aux éléments des hashes, ça ressemble une fois de plus aux tableaux. On accède aux éléments par leur clé.
Pour supprimer un élément, on utilise la méthode <gras>delete</gras>
Ajouter des éléments
Pour ajouter un élément, on donne une valeur à une clé qui n'existe pas.
Parcourir un hash
Pour parcourir les hash, on utilise les mêmes méthodes que pour les tableaux. Voici trois façons de faire qui ont toutes le même rendu :
On constate deux choses :
Sephi-Chan
Les tableaux associatifs, plus souvent appelés hashes, sont très proches de tableaux vus précédemment. La différence est qu'au lieu d'avoir une clé numérique, la clé peut ici être une chaîne, un symbole ou un entier (d'autres données peuvent être utilisées, mais nous ne l'aborderont pas dans le cours).
- Déclaration d'un hash
- Accéder et modifier des éléments
- Ajouter des éléments
- Parcourir un hash
Déclaration d'un hash
Les symboles forment un type de données bien particulier, nous ne les étudierons pas pour le moment. Nous les utiliseront cependant en tant que clé pour les gains de performances qu'ils apportent par rapport à d'autres types de clés.
Un symbole se note de la même façon qu'une variable, à la différence près qu'il est précédé du caractère deux points (, comme ce ymbole !
Voici la déclaration d'un hash :
profil = {
:force => 24,
:agilite => 31,
:endurance => 30
}
Par rapport aux tableaux, deux différences majeurs :
- On utilise ici des accolades lors de la déclaration à la place des crochets ;
- Les éléments sont des paires : on associe un symbole à une valeur.
Accéder et modifier des éléments
Pour accéder aux éléments des hashes, ça ressemble une fois de plus aux tableaux. On accède aux éléments par leur clé.
profil = { :force => 24, :agilite => 31, :endurance => 30 }
puts profil[:force] # 24
profil[:force] += 3
puts profil[:force] # 27
Pour supprimer un élément, on utilise la méthode <gras>delete</gras>
profil = { :force => 24, :agilite => 31, :endurance => 30 }
puts profil[:force] # 24
profil.delete :force
puts profil[:force] # nil
Ajouter des éléments
Pour ajouter un élément, on donne une valeur à une clé qui n'existe pas.
profil = { :force => 24, :agilite => 31, :endurance => 30 }
profil[:intelligence] = 29
puts profil[: intelligence] # 29
Parcourir un hash
Pour parcourir les hash, on utilise les mêmes méthodes que pour les tableaux. Voici trois façons de faire qui ont toutes le même rendu :
profil = { :force => 24, :agilite => 31, :endurance => 30 }
for caracteristique in profil
puts "#{caracteristique[0]} : #{caracteristique[1]}"
end
profil.each { |caracteristique, valeur| puts "#{caracteristique} : #{valeur}" }
profil.each do |caracteristique, valeur|
puts "#{caracteristique} : #{valeur}"
end
Code :
force : 24
agilite : 31
endurance : 30
On constate deux choses :
- Quand on utilise for, chaque élément du hash est représenté par un tableau classique dont la clé est le premier élément et la valeur le second.
- Quand on utilise each, on utilise deux variables qui vont respectivement contenir la clé et la valeur.
Sephi-Chan