Module:TableTools/Documentation
Apparence
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
shallowClone(t)
– Retourne une copie du tableaut
, 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 tableaut
, qui, contrairement àshallowClone
ne partage rien avect
. Cette fonction fait la même chose quemw.clone
mais fonctionne également sur des tableaux chargés avecmw.loadData
. SinoMetatable
vauttrue
, 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 arrayt
et retourne le même array sans les doublons. Les clés det
qui ne sont pas des entiers positifs sont ignorées et la fonction s'arrête à la première valeurnil
rencontrée. Pour ignorer lesnil
, il faut d'abord utiliser la fonctioncompressSparseArray
.
compressSparseArray(t)
– Prend en argument un arrayt
et retourne le même array sans les éventuelsnil
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'}
.
numData(t, compress)
– Prend en argument un tableaut
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'} }
. Sicompress
vauttrue
, la fonctioncompressSparseArray
est appliquée au résultat, permettant une itération sur le tableau avec ipairs.
Fonctions d'itération sur un tableau
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