Module:BananesArgs
Wikimedia module / De Wikipedia, l'encyclopédie encyclopedia
-- Module simple qui démontre comment utiliser les arguments --[[ Pour en savoir plus sur l'objet Frame,
voyez https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/fr#L.27objet_Frame]]
local p = {}
-- Aucun argument. Pour l'appeler : Hello, world! function p.hello_world() return "Hello, world!" end
-- Un argument. Pour l'appeler : Hello, Fred! function p.hello(frame) local nom = frame.args[1] -- dans cet exemple, args[1] est le mot « Fred » return "Hello, " .. nom .. "!" -- .. nom .. est remplacé par le mot « Fred » end
-- Deux arguments. Pour l'appeler : 8 function p.adition(frame) local nomb1 = tonumber(frame.args[1]) local nomb2 = tonumber(frame.args[2]) return nomb1 + nomb2 end
-- Argument nommé. Pour l'appeler : J'ai 5 bananes et 3 pommes function p.somme_fruit(frame) local nomb_bananes = frame.args.bananes local nomb_pommes = frame.args.pommes return "J'ai " .. nomb_bananes .. ' bananes et ' .. nomb_pommes .. ' pommes' end
--[[ Exemple avec des arguments non nommés, des arguments nommés et des arguments optionnels
Pour l'appeler : Fred a : 5 bananes 7 cerises ]]
function p.total_fruit(frame) local nom = frame.args[1] local nomb_bananes = frame.args.bananes local nomb_pommes = frame.args.pommes local nomb_cerises = frame.args.cerises
local resultat = nom .. ' a :' if nomb_bananes then resultat = resultat .. ' ' .. nomb_bananes .. ' bananes' end if nomb_pommes then resultat = resultat .. ' ' .. nomb_pommes .. ' pommes' end if nomb_cerises then resultat = resultat .. ' ' .. nomb_cerises .. ' cerises' end return resultat end
--[[ Iteration sur args.
Pour l'appeler : J'ai : 5 kiwis 10 ananas]]
function p.custom_fruit(frame) local resultat = "J'ai :" for nom, valeur in pairs(frame.args) do resultat = resultat .. ' ' .. valeur .. ' ' .. nom end return resultat end
--[[ Itération sur args avec args obligatoirement distincts
Pour l'appeler : Fred a : 5 kiwis 10 ananas ]]
function p.custom_fruit_2(frame) local nom = frame.args[1] local resultat = nom .. ' a :' for nom, valeur in pairs(frame.args) do if nom ~= 1 then resultat = resultat .. ' ' .. valeur .. ' ' .. nom end end return resultat end
return p