JeuWeb - Crée ton jeu par navigateur

Version complète : [Ruby] Les tableaux associatifs
Vous consultez actuellement la version basse qualité d'un document. Voir la version complète avec le bon formatage.
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
  • 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 (2, comme ce :symbole !


Voici la déclaration d'un hash :

    Code RUBY
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é.

    Code RUBY
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>

    Code RUBY
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. 2

    Code RUBY
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 :

    Code RUBY
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
Peut-on trier selon les éléments de ce tableau selon un ordre particulier (alphabétique, numérique, etc ..)
Peut-on scinder un tableau associatif en plusieurs tableaux ?

kéké
Oxman, toi z'ici ? 4
C'est cool que tu ai répondu. J'avais zappé le message de Kéké.
Je rajouterai les fonctions de tri dans l'article.


Sephi-Chan
Bon retour par Minou Oxman 34.

Kéké
URLs de référence