Quand faut-il utiliser un tableau? Quand faut-il utiliser un hachage?
La structure du carnet d'adresses est un bon exemple pour répondre à ces deux questions.
Si vos données doivent-être triées, il vous faut un tableau.
Si vos données représentent une collection de données différentes, sans aucune corrélation entre elles (par exemple, un prénom, un nom et un numéro de téléphone), il vous faut un hachage.
Dans l'exemple du carnet d'adresses, les structures pour les adresses et les personnes contiennent des données différentes. Donc, nous les avons représentés par des hachages.
Mais le carnet lui-même contient des données du même type (des personnes), et nous voulions également être capable de trier ses éléments. Donc, représenter le carnet par un tableau était le meilleur choix.
Comme vous êtes maintenant capable d'écrire des structures de données complexes, il devient plus important que vous choisissiez de bons noms pour vos variables.
Un tableau devrait toujours représenter une collection d'éléments du même type. Comme une groupe de voitures, une liste de noms, etc.. Vous pouvez représenter ceci en utiliser en mettant au pluriel le nom de votre tableau. Par exemple:
Si chaque élément du tableau est une voiture, le tableau devrait s'appeler voitures.
Si chaque élément du tableau est le nom d'une personne, le tableau devrait s'appeler noms.
De cette façon, le nom de la variable vous rappelle qu'il s'agit d'un tableau, et en même temps, elle se lit comme du français.
Lorsque vous travaillerez avec des hachages, il est important que vous choisissiez de bons noms pour vos clefs de hachage. Un bon nom doit être à la fois clair, descriptif et facile à se souvenir.
Bien: "deuxième prénom"
Pas bien: "2eprenom"
N'oubliez pas que Ruby accepte des espaces et des accents comme noms pour vos clefs de hachage. Vous n'avez donc aucune excuse d'utiliser "2eprenom" pour une clef.
N'oubliez surtout pas de rajouter des commentaires clairs dans vos programmes. Souvenez-vous, on écrit le code une fois, et on le lit une infinité de fois.
En général, il est recommandé d'éviter de déclarer des sous-structures. Néanmoins, si vous utilisez une indentation propre et des noms significatifs pour vos variables, ça peut être bon.
Jetez un coup d'oeil à ces exemples:
# Adresse de Nicolas adresse_de_nicolas = { "rue" => "Rue du port, 32", "code postal" => "56000", "ville" => "Vannes", "pays" => "France" } # Nicolas nicolas = { "prénom" => "Nicolas", "nom de famille" => "Rocher", "téléphone" => "(+33) 02 93 45 49 19", "adresse" => adresse_de_nicolas }
# Nicolas nicolas = { "prénom" => "Nicolas", "nom de famille" => "Rocher", "téléphone" => "(+33) 02 93 45 49 19", "adresse" => { "rue" => "Rue du port, 32", "code postal" => "56000", "ville" => "Vannes", "pays" => "France" } }