Vés al contingut

Mòdul:Exemple

De la Viquipèdia, l'enciclopèdia lliure
Icona de documentació de mòdul Documentació del mòdul [ mostra ] [ modifica el codi ] [ mostra l'historial ] [ refresca ]

Mòdul Exemple (codi · ús · discussió · proves · tests · casos prova | subpàgines · enllaços)

A continuació es mostra la documentació transclosa de la subpàgina /ús. [salta a la caixa de codi]


Aquesta és una documentació d'exemple per al mòdul, que s'utilitza per a demostracions i similars.

Vegeu també[modifica]

Mòdul:DemoArgs

local p = {};       --Tots els mòduls lua de la Viquipèdia han de començar definint una variable
                    --que mantindrà les funcions del mòdul accessibles externament.
                    --Aquestes variables poden tenir el nom que vulgueu i que es pugui
                    --també contenen diverses dades i funcions.                    
p.hello = function( frame )     -- Afegeix una funció a "p".
                                        --Aquestes funcions es poden cridar a la Viquipèdia
                                        --via ordre #invoke.
                                        --"frame" contindrà les dades que la Viquipèdia
                                        --envia a aquesta funció quan s'executa.
                                  -- "hello" és un nom que trieu. Cal fer referència al mateix nom quan s'utilitza el mòdul.    
    local str = "Hola Món!"  --Declara una variable local i estableix que és igual a
                                --"Hola Món!".  
	return str    -- Això ens indica que deixem aquesta funció i que enviem la informació
                  -- "str" a la Viquipèdia.    
end  -- final de la funció "hello"

function p.hello_to(frame)		-- Afegeix una altra funció
	local name = frame.args[1]  -- Per accedir a arguments passats a un mòdul, utilitza `frame.args`
							    -- `frame.args[1]` fa referència al primer paràmetre sense nom
							    -- donat al mòdul
	return "Hola, " .. name .. "!"  -- `..` concatena cadenes. Retornarà un missatge personalitzat
									-- salutació en funció del nom que es doni, com ara "Hola, Fred!"
end

function p.count_fruit(frame)
	local num_bananas = frame.args.bananas -- Per accedir als arguments amb nom, com ({{#invoke:Example|count_fruit|bananas=10}}),
	local num_apples = frame.args.apples   -- es pot fer de dues formes mitjançant `frame.args["bananas"]`, o
										   -- equivalentment `frame.args.bananas`.
	return 'Jo tinc ' .. num_bananas .. ' plàtans i ' .. num_apples .. ' pomes'
										   -- Com abans, s'encadenen juntes un seguit de cadenes individuals per produir
										   -- una frase basada en els arguments donats.
end

local function lucky(a, b) -- Es poden definir funcions locals a utilitzar només dins d'aquest mòdul (en aquest cas en la següent funció). 
	--Aquí es defineix una funció "lucky" que té dues entrades a i b. 
	--Els noms són de la vostra elecció.
	if b == 'yeah' then -- Condició: si b és la cadena 'yeah'. Les cadenes requereixen cometes. No oblideu incloure 'then'.
		return a .. ' és el meu número de la fortuna.' -- Retorna 'a és el meu número de la fortuna.' si es compleix la condició anterior. 
			--Recorda: L'operador de concatenació de cadenes es defineix pels 2 punts.
	else -- Si no es compleix la condició, és a dir, si b és una altra cosa, la sortida s'especifica a la línia següent. 
		-- 'else' no ha de tenir 'then'.
		return a -- Simplement retorna a.
	end -- L'estructura de control 'if' ha d'acabar amb un 'end'.
end -- D'aquesta 'function'.

function p.Name2(frame)
	local pf = frame:getParent().args -- Aquesta línia permet utilitzar fàcilment paràmetres d'una plantilla que utilitzi aquesta funció. 
										--El signe igual s’utilitza per definir variables. 'pf' es pot substituir per una paraula que trieu.
	local f = frame.args -- Aquesta línia permet utilitzar fàcilment paràmetres d'una crida {{#invoke:}}. 
							--'f' es pot substituir per una paraula que trieu.
	local M = f[1] or pf[1] -- f[1] i pf[1], que s'acaben de definir, fan referència al primer paràmetre. 
								--Aquesta línia els escurça com a "M" per comoditat. Podeu utilitzar els noms de variables originals.
	local m = f[2] or pf[2] -- El segon paràmetre com a 'm'.
	local l = f.lucky or pf.lucky -- Un paràmetre anomenat "lucky" és una abreviat com a l. Tingueu en compte que la sintaxi és diferent dels paràmetres sense nom.
	if m == nil then -- Si no s'utilitza el segon paràmetre.
		return 'Solitari' -- Retorna la cadena 'Solitari' suposant que s'ha assignat el primer paràmetre.
	elseif M > m then -- Si no es compleix la primera condició, aquesta línia prova una segona condició: si M és superior a m.
		return lucky(M - m, l) --Si es compleix la condició, la diferència es calcula i es passa a la funció local juntament amb l. 
								--La sortida depèn de si l té assignat "yeah".		
	else
		return 'Sigues positiu!'
	end
end

return p    --Tots els mòduls acaben retornant la variable que conté les seves funcions a Viquipèdia.
-- Ara podeu utilitzar aquest mòdul, segons us sembli, amb {{#invoke:Exemple|hello}},
-- {{#invoke:Exemple|hola_to|foo}}, o {{#invoke:Exemple|count_fruit|bananas=5|apples=6}}
-- Tingueu en compte que la primera part de la crida és el nom del mòdul,
-- i la segona part és el nom d'una de les funcions associades al mòdul, 
-- seguides, segons el cas, per cap o per una o vàries variables.

-- La funció "imprimir" no està permesa a la Viquipèdia. Qualsevol sortida és "retornada"
-- com a quelcom que es mostra en una pàgina, com a cadena.