Discussions apparemment similaires...
Discussion : Auteur Réponses : Affichages : Dernier message
  [Ruby] Les tableaux Sephi-Chan 1 295 06-17-2009 08:13 PM
Dernier message: Kishan

Poster une réponse 
 
Note de cette discussion :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[Ruby] Les tableaux associatifs
Auteur Message
Sephi-Chan Hors ligne
Administrateur
*******

Messages : 5 083
Inscription : Aug 2006
Réputation : 43
Message : #1
[Ruby] Les tableaux associatifs
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

Bug Spirit sur JeuWeb mais aussi sur BugSpirit.net !

Ruby on Rails - Tutoriels récents
06-17-2009 06:42 PM
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
keke Hors ligne
Modérateur
*****

Messages : 1 999
Inscription : Mar 2007
Réputation : 21
Message : #2
[Ruby] Les tableaux associatifs
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é

Kéké < AFK ! >.
Modérateur de jeuPHP 34.
Administrateur du jeu médiéval Magdales
Papa de Siloé (2 ans) et Apolline (10 jours)
Référenceur de LADO : les amis de l'outil
06-18-2009 09:41 AM
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Sephi-Chan Hors ligne
Administrateur
*******

Messages : 5 083
Inscription : Aug 2006
Réputation : 43
Message : #3
[Ruby] Les tableaux associatifs
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

Bug Spirit sur JeuWeb mais aussi sur BugSpirit.net !

Ruby on Rails - Tutoriels récents
06-20-2009 08:00 PM
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
keke Hors ligne
Modérateur
*****

Messages : 1 999
Inscription : Mar 2007
Réputation : 21
Message : #4
[Ruby] Les tableaux associatifs
Bon retour par Minou Oxman 34.

Kéké

Kéké < AFK ! >.
Modérateur de jeuPHP 34.
Administrateur du jeu médiéval Magdales
Papa de Siloé (2 ans) et Apolline (10 jours)
Référenceur de LADO : les amis de l'outil
06-22-2009 10:43 AM
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Poster une réponse 



ContactJeuWeb - Crée ton jeu par navigateurRetourner en hautRetourner au contenuVersion bas-débit (Archivé)Syndication RSS