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
isPositiveInteger(value)
– Prend en argument un objet quelconque et retournetrue
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 retournetrue
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 tableaut
, c.-à-d. la première clé telle que la suivante est associée à la valeurnil
. Il s'agit de l'équivalent de l'opérateur # pour des tableaux chargés avecmw.loadData
.
size(t)
– Retourne la taille d'un tableaut
, c.-à-d. le nombre de paires clé / valeur qu'il contient.
isArray(t)
– Retournetrue
si le tableaut
est un array (les clés sont 1, 2, 3,...) etfalse
sinon.
inArray(arr, valueToFind)
– Retournetrue
sivalueToFind
est dans l'arrayarr
etfalse
sinon.
keysToList(t, keySort, checked)
– Prend en argument un tableaut
et retourne la liste de ses clés, triées selonkeySort
avec keySort une fonction prenant deux arguments et retournanttrue
si, dans l'ordre, le premier est avant le second. Par défaut,keySort
est le tri selon le signe<
. Si keySort vautfalse
, aucun tri n'est effectué.checked
est un booléen à mettre àtrue
pour passer les tests de type.
numKeys(t)
– Prend en argument un tableaut
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 tableaut
et retourne la liste des clés commençant parprefix
et finissant parsuffix
.
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