Tableaux associatifs

Qubes 6.8 Les tableaux associatifs (aussi appelés "dictionnaires" ou "hash") sont une extension des Tableaux pour lesquels l'index n'est plus nécessairement une suite d'ordinaux, mais peut être un type quelconque (une clef).

La syntaxe de déclaration est identique, mais l'index est défini comme étant un type et non plus une étendue:

var a : array [String] of Integer;

a['one'] := 1;
a['two'] := 2;

PrintLn(a['two']);

Note: si l'index est un type énuméré, ce sera un tableau statique qui sera déclaré et non un tableau associatif.

Les tableaux associatifs disposent des pseudo-méthodes suivantes:

  • .Clear: vide le tableau de tous ses éléments
  • .Delete(key): supprime un élément indexé par sa clef, si un élément était présent, retourne True (sinon False, Qubes 7.1)
  • .Keys: retourne un tableau contenant toutes les clefs (Qubes 7.1)
  • .Length: nombre d'éléments

Les index de type valeur (chaîne, numérique, record...) sont mis en correspondance selon une égalité stricte.
Les index de type référence (objet, interface, tableau) sont mis en correspondance en tant que référence, indépendamment des valeurs qu'ils contiennent.

L'opérateur in permet de tester la présence d'une clef dans un tableau (Qubes 7.1):

var a : array [String] of Integer;

a['one'] := 1;

PrintLn('one' in a); // True
PrintLn('two' in a); // False