Ruby/Tableaux et hachages
Vous connaissez les variables et les constantes ? Maintenant, place aux tableaux et aux hachages qui vous permettent également de stocker des données.
Les tableaux
[modifier | modifier le wikicode]Un tableau est une structure pouvant stocker des données. Des données de types différents peuvent cohabiter dans un même tableau (par exemple, un nombre et une chaîne de caractères). Un tableau est délimité par des crochets et ses éléments sont séparés par des virgules.
tab = [] # tableau vide
prix = [30, 400, 25, 73] # tableau contenant des entiers
puts prix # affichage de toutes les valeurs du tableau
langues = ["fr", "en"] # tableau de chaînes de caractères
puts langues
mix = 4, "quatre" # tableau mixte
puts mix
Les crochets ne sont pas obligatoires, quel que soit le type des éléments contenus dans le tableau.
Accéder à un élément
[modifier | modifier le wikicode]Chaque élément du tableau est associé à un nombre (un entier naturel) qui représente la case du tableau qu’il occupe ; la première case correspond à l'indice 0. Un exemple pour vous éclairer :
prix[0]
correspond au premier élément du tableau. Ce tableau contient 4 éléments donc 3 est l'indice du dernier élément, désigné par prix[3]
.
Ajouter un élément à un tableau
[modifier | modifier le wikicode]Pour ajouter un élément à la fin de votre tableau, vous pouvez utiliser l'opérateur <<
que vous avez déjà vu pour les chaînes de caractères (dans le chapitre consacré aux opérateurs).
Vous pouvez également vous en servir pour concaténer deux tableaux (les mettre bout à bout) :
t = [4, 7, 3] ; s = [6, 8]
t << s
# => [4, 7, 3, [6, 8]]
# Pour ajouter réellement les valeurs de s à t =
t += s
# => [1, 7, 3, 6, 8]
Les hachages
[modifier | modifier le wikicode]Les hachages sont des tableaux particuliers : au lieu d'associer une valeur à son indice (la place qu'elle occupe dans le tableau), elle sera associée à une clé (un mot).
La seconde différence essentielle avec les tableaux ordinaires est l’utilisation d'accolades dans la déclaration des éléments à la place de crochets. Les accolades ne sont pas facultatives.
Accéder à un élément
[modifier | modifier le wikicode]Dans le hachage livre
, "Toto"
est associé à la clé "auteur"
, cette valeur est désignée par livre["auteur"]
:
Si on avait eu recours à un tableau, on aurait utilisé livre[1]
pour désigner "Toto"
.
Lorsque les données sont du mêmes type, et qu’elles appartiennent à un même ensemble (par exemple : la suite des nombres premiers jusqu'à 1000, la liste des prénoms de vos amis, etc.), un tableau est plus indiqué. Dans tous les autres cas, un hachage conviendrait mieux.