Les tables de hachage servent à hacher des pingouins, dans le jargon du GOTO++ (ce n'est pas à prendre au sens propre). Autrement dit, cela permet de créer un troupeau de pingouins où l'on associe dynamiquement un pingouin à une étiquette texte. Pour créer un dictionnaire, en quelque sorte.
La notation utilisée ressemble à celle d'un troupeau anonyme, mis à part que les indices sont entre crochets et que ces indices doivent être du texte.
J[«Albert»]=«vert» J[«Bertrand»]=«rouge à pois bleus» GOTOPRINTDUTEXTE() ; &J[«Bertrand»] «Bertrand est un pingouin » GOTO Affiche Bertrand est un pingouin rouge à pois bleus.
Remarquez qu'à partir d'une référence, on peut non seulement accéder à la valeur mais aussi à la clef (la clef c'est l'indice d'une table de hachage, Bertrand ou Albert dans l'exemple précédent). Pour cela on utilise l'opérateur ".
Z=J[«Albert»] GOTOPRINTDUTEXTE() ; &Z" « est un pingouin » &Z#
Pour parcourir les différents éléments d'une table de hachage on utilise l'opérateur ++. Pour se placer sur le premier élément de la table on utilise la fonction PremierPingouin.
Z=PremierPingouin(J) Taille=tailleenlongueur J §1 GOTOPRINTDUTEXTE() ; &Z" « est un pingouin » &Z# Taille=-*(1) Z=&Z++*(1) GOTONONNULPOURLESNULS %1 &Taille