Module:TableBuilder/Documentation
Aller à la navigation
Aller à la recherche
La documentation pour ce module peut être créée à Module:TableBuilder/Documentation/doc
Erreur de script : Erreur Lua à la ligne 1 : unexpected symbol near '{'.
{{Protection}} TableBuilder est un module qui applique aux fonctions de la [[mw:Extension:Scribunto/Lua reference manual/fr#Librairie Table|librairie Table]] une [[Désignation chaînée|interface fluide]]. Le code est ainsi à la fois plus concis et plus clair. Attention : ce module ne devrait être utilisé que pour des tables [[:mw:Extension:Scribunto/Lua_reference_manual/fr#s.C3.A9quence|séquences]], ou au pire des tables dont les éléments sont connus et limités. En effet, ajouter à la table un élément ayant pour index le nom d'une de ces fonctions remplace la fonction par cet élément. == Utilisation == Vous devez premièrement charger le module : {{code|lang=lua|code=local TableBuilder = require('Module:TableBuilder')}} Deuxièmement, vous devez instancier le tableau, avec <code>new</code> pour une nouvelle table, avec <code>set</code> pour une table existante, ou en clonant une table existante. {{code|lang=lua|code=local tab1 = TableBuilder.new()}}<br /> {{code|lang=lua|code=TableBuilder.set(tab2)}}<br /> {{code|lang=lua|code=local tab1 = TableBuilder.clone(tab3)}} Ensuite, vous pouvez utiliser les méthodes énumérées dans la [[mw:Extension:Scribunto/Lua reference manual/fr#Librairie Table|librairie Table]] (<code>insert</code>, <code>remove</code>, <code>sort</code>, <code>maxn</code>) ou une des fonctions spécifiques décrites ci-dessous. Enfin, vous devez concaténer la table en utilisant la méthode <code>concat()</code> : <code>tab.concat()</code> == Fonctions spécifiques == * <code>minsert( ... )</code> — permet des inserts multiples, pour ajouter en une opération plusieurs éléments à la fin de la table. Les paramètres passés à la fonction valant false ou nil sont ignorés. * <code>tinsert( table2, i, j )</code> — ajoute à la fin de la table les éléments <code>table2[i]</code> à <code>table2[j]</code>. La valeur par défaut de <code>i</code> est 1, et la valeur par défaut de <code>j</code> est la longueur de la table. Si <code>i</code> est plus grand que <code>j</code> aucun élément n'est ajouté. == clone == <code>TableBuilder.clone</code> duplique une table existante, de façon récursive. Contrairement à mw.clone, cette fonction ne clone pas la meta-table, mais utilise la meta-table de TableBuilder. Ceci permet notamment de modifier une table chargée par <code>mw.loadData</code>. Cette fonction ne devrait pas être utilisée sur la totalité de la table chargée par loadData (utiliser <code>require</code> sera plus économe en mémoire) mais sur une petite sous-table. == Exemples == <syntaxhighlight lang="lua"> local TableBuilder = require( 'Module:TableBuilder' ) local date = { 'Cet exemple a été modifié le' } TableBuilder.set( date ) date.insert( "4" ) .insert( "2013" ) .insert( 3, "septembre" ) local time = TableBuilder.new() local heure, minute = "12", "8" local seconde time.minsert( "à", heure, "heures et", minute, "minutes", seconde, seconde and "secondes" ) date.tinsert( time ) local s = date.concat( ' ' ) .. "." --s = 'Cet exemple a été modifié le 4 septembre 2013 à 12 h et 8 minutes.' </syntaxhighlight> {{Projet Scribunto}} <includeonly> [[Catégorie:Méta-module]] [[Catégorie:Module appelé par un autre module]] </includeonly>