Aller au contenu

Module:ExempleParams

Une page de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 13 septembre 2013 à 18:23 et modifiée en dernier par Xofc (discuter | contributions) (Création d'un module illustrant le passage de paramètres nommés et non nommés). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.
(diff) ← Version précédente | Version actuelle (diff) | Version suivante → (diff)

 Documentation[voir] [modifier] [historique] [purger]

ExempleParams est un court module qui montre comment récupérer les paramètres à l'intérieur du module au moyen de ipairs() et de pairs(). Il s'agit d'un modèle à visée pédagogique (voir Aide:Module).

Utilisation

Fonctions exportables :

  • imprime_les_parametres(params) – cette fonction imprime les paramètres qu'on lui passe.

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

  • mw.ipairs – générateur de paramètres non nommés (ou nommés explicitement avec un numéro entier) formant une séquence continue de 1 à N, sans aucun trou.
  • mw.pairs – générateur de paramètres nommés et non nommé. Remarque: il reprend en séquence d'abord les paramètres non nommés (ou nommés avec une clé entière) formant une séquence continue de 1 à N, sans aucun trou, avant de reprendre tous les autres paramètres (chaines, et nombres entiers ou pas) dans un ordre totalement arbitraire

Exemples

{{#invoke:ExempleParams|imprime_les_parametres|paramètre non nommé 1| paramètre
 non nommé 2|troisième paramètre || cinquième |
nommé1 = couleur

| nommé2
=bleu|dernier
nommé=last }}

donne (notez quels blancs ou sauts de lignes sont éliminés ou pas des noms ou des valeurs des paramètres :

Paramètres non nommés

  • param[1] = paramètre non nommé 1
  • param[2] = paramètre
non nommé 2
  • param[3] = troisième paramètre
  • param[4] =
  • param[5] = cinquième


Paramètres nommés

  • param{1} = paramètre non nommé 1
  • param{2} = paramètre
non nommé 2
  • param{3} = troisième paramètre
  • param{4} =
  • param{5} = cinquième
  • param{nommé1} = couleur
  • param{dernier

nommé} = last

  • param{nommé2} = bleu


{{#invoke:ExempleParams|imprime_les_parametres|écrivain|2=wallon|nom=[[Arthur Masson]]|mort à=[[Namur]]|mort en=1970|10=hors séquence|6=hors séquence aussi|1.5=belge| 3 = avec des blancs | 3.0 = avec des blancs aussi |4= |-1=entier négatif|+1=entier positif|0=entier nul|-0=entier négatif nul}}

donne :

Paramètres non nommés

  • param[1] = écrivain
  • param[2] = wallon
  • param[3] = avec des blancs
  • param[4] =


Paramètres nommés

  • param{1} = écrivain
  • param{2} = wallon
  • param{3} = avec des blancs
  • param{4} =
  • param{6} = hors séquence aussi
  • param{0} = entier nul
  • param{+1} = entier positif
  • param{nom} = Arthur Masson
  • param{1.5} = belge
  • param{mort en} = 1970
  • param{10} = hors séquence
  • param{-1} = entier négatif
  • param{mort à} = Namur
  • param{-0} = entier négatif nul
  • param{3.0} = avec des blancs aussi


Remarquer

  • la table d'exportation de fonctions (ici « p ») contient déclaration et retour ; les fonctions exportées sont de la forme p.nomFonction() ;
  • le passage des paramètres aux fonctions exportées et leur récupération[1] (frame, pairs, ipairs) ;
  1. La récupération des paramètres s'effectue au moyen d'un mécanisme qui s'apparente à celui de getopt() (en)
-- Illustration du passage des paramètres dans les modules Lua
--    utilisation des itérations sur ipairs() et pairs()
local p = {}

function p.imprime_les_parametres(params)
	local x = ''
	local index, valeur
	local cle, val
	x = x.."'''Paramètres non nommés'''\n"
	for index,valeur in ipairs(params.args) do
		x = x..'* param['..index..'] = '..valeur..'\n'
	end
	x = x.."<br/>'''Paramètres nommés'''\n"
	for cle,val in pairs(params.args) do
		x = x..'* param{'..cle..'} = '..val..'\n'
    end
	return x
	
end

return p