Aller au contenu

Module:TableTools/Documentation

Une page de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 12 juillet 2023 à 16:06 et modifiée en dernier par Escargot bleu (discuter | contributions) (Fonctions créant un nouveau tableau). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.

Utilisation

Ce modèle fournit diverses fonction pour les tableaux lua. Il est prévu pour un usage par d'autres modules et non pour une invocation directe dans un modèle.

Fonctions exportables

Fonctions d'analyse du contenu / des propriétés du tableau

Fonction Utilisation
isPositiveInteger(value) Prend en argument un objet quelconque et retourne true s'il s'agit d'un nombre entier positif. Cette fonction s'applique à une valeur seule et non à un tableau. Elle est utile pour déterminer si une clé correspond à une clé d'un array (c.-à-d. clé entier positif) ou à une clé de table de hachage (c.-à-d. clé « quelconque »).
isNan(value) Prend en argument un objet quelconque et retourne true s'il s'agit de NaN (correspond généralement à un résultat d'opération mathématique non défini, comme 0/0). Cette fonction permet de déterminer si un objet est une clé de tableau valide.
length(t) Retourne la longueur d'un tableau t, c.-à-d. la première clé telle que la suivante est associée à la valeur nil. Il s'agit de l'équivalent de l'opérateur # pour des tableaux chargés avec mw.loadData.
size(t) Retourne la taille d'un tableau t, c.-à-d. le nombre de paires clé / valeur qu'il contient.
isArray(t) Retourne true si le tableau t est un array (les clés sont 1, 2, 3,...) et false sinon.
inArray(arr, valueToFind) Retourne true si valueToFind est dans l'array arr et false sinon.
keysToList(t, keySort, checked) Prend en argument un tableau t et retourne la liste de ses clés, triées selon keySort avec keySort une fonction prenant deux arguments et retournant true si, dans l'ordre, le premier est avant le second. Par défaut, keySort est le tri selon le signe <. Si keySort vaut false, aucun tri n'est effectué. checked est un booléen à mettre à true pour passer les tests de type.
numKeys(t) Prend en argument un tableau t et retourne la liste des clés entières positives associées à une valeur non-vide. Exemple : Pour le tableau {'foo', nil, 'bar', a = 'b'}, numKeys retourne {1, 3}.
affixNums(t, prefix, suffix) Prend en argument un tableau t et retourne la liste des clés commençant par prefix et finissant par suffix.

Fonctions créant un nouveau tableau

Fonction Utilisation
shallowClone(t) Retourne une copie du tableau t, mais partageant ses éventuels sous-tableaux et fonctions. (c.-à-d. que modifier un sous-tableau de la copie modifie également t)
deepCopy(t, noMetatable, alreadySeen) Retourne une copie du tableau t, qui, contrairement à shallowClone ne partage rien avec t. Cette fonction fait la même chose que mw.clone mais fonctionne également sur des tableaux chargés avec mw.loadData. Si noMetatable vaut true, les méta-tables ne sont pas copiées. alreadySeen est un paramètre interne utilisé dans les appels récursifs et ne devrait pas être affecté manuellement.
removeDuplicates(t) Prend en argument un array t et retourne le même array sans les doublons. Les clés de t qui ne sont pas des entiers positifs sont ignorées et la fonction s'arrête à la première valeur nil rencontrée. Pour ignorer les nil, il faut d'abord utiliser la fonction compressSparseArray.
compressSparseArray(t) Prend en argument un array t et retourne le même array sans les éventuels nil et clés non entières positives, en préservant l'ordre. Exemple : Appliquée au tableau {1, nil, foo = 'bar', 3, 'nil'}, la fonction renvoie {1, 3, 'nil'}.
listToSet(arr)
invert(t)
sparseConcat(t, sep, i, j)
numData(t, compress) Prend en argument un tableau t dont toutes les clés finissent par des nombres et retourne un tableau de sous-tableau trié par ces nombres. Exemple : Si la fonction est appliquée au tableau {"foo1" = 'texta', "bar1" = 'textb', "foo2" = 'textc', "baz2" = 'textd'}, alors la fonction renvoie{ [1] = {foo = 'texta', bar = 'textb'}, [2] = {foo = 'textc', baz = 'textd'} }. Si compress vaut true, la fonction compressSparseArray est appliquée au résultat, permettant une itération sur le tableau avec ipairs.

Fonctions d'itération sur un tableau

Fonction Utilisation
sparseIpairs(t)
sortedPairs(t, keySort)

Modules externes et autres éléments dont ce module a besoin pour fonctionner

  • mw.ustring.match – Cherche la première correspondance d'un motif dans une chaine de caractères ;
  • libraryUtil – Bibliothèque de fonctions pour retourner une erreur lorsque le type d'un objet n'est pas celui attendu.

Exemple

Pour utiliser les fonctions de ce module, celui-ci doit être importé avec local TableTools = require('Module:TableTools'). Les fonctions sont ensuite utilisables sous le nom TableTools.nomFonction.

local TableTools = require('Module:TableTools')

local p={}

function p.main(tableau)
    if TableTools.isArray(tableau) then
        return "Le tableau est un array."
    else
        return "Le tableau n'est pas un array."
    end
end

return p