Modul:DemoArgs
Erscheinungsbild
Beispielmodul um darzustellen, wie man auf die Argumente zugreift. Für mehr zum Thema "Frame object", siehe http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Frame_object
Beispielaufrufe der Funktionen
Keine Argumente
{{#invoke:DemoArgs|Hallo_Welt}}
ergibt:
- Skriptfehler: Die Funktion „Hallo_Welt“ ist nicht vorhanden.
Ein Argument
{{#invoke:DemoArgs|Hallo|Peter}}
ergibt:
- Skriptfehler: Die Funktion „Hallo“ ist nicht vorhanden.
Zwei Argumente
{{#invoke:DemoArgs|addiere|5|3}}
ergibt:
- Skriptfehler: Die Funktion „addiere“ ist nicht vorhanden.
Benannte Argumente
{{#invoke:DemoArgs|Obstzaehlen|Bananen=5|Aepfel=3}}
ergibt:
- Skriptfehler: Die Funktion „Obstzaehlen“ ist nicht vorhanden.
Mischung aus regulären und benannten Argumenten und optionalen benannten Argumenten
{{#invoke:DemoArgs|Obstkorb|Peter|Bananen=5|Kirschen=7}}
ergibt:
- Skriptfehler: Die Funktion „Obstkorb“ ist nicht vorhanden.
Iteration über die Argumente
{{#invoke:DemoArgs|Obst1|Ananas=10|Kiwis=5}}
ergibt:
- Skriptfehler: Die Funktion „Obst1“ ist nicht vorhanden.
Iteration über Argumente mit separaten Argumenten
{{#invoke:DemoArgs|Obst2|Peter|Ananas=10|Kiwis=5}}
ergibt:
- Skriptfehler: Die Funktion „Obst2“ ist nicht vorhanden.
-- Beispielmodul um darzustellen, wie man auf die Argumente zugreift.
-- Für mehr zum Thema "Frame object", siehe http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Frame_object
-- Aufrufe mit entsprechender Vorlage
local p = {}
-- Keine Argumente, Aufruf z. B.: {{#invoke:BananasArgs|hello_world}}
function p.hello_world()
return "Hello, world!"
end
-- Ein Argument, Aufruf z. B.: {{#invoke:BananasArgs|hello|Peter}}
function p.hello(frame)
local name = frame.args[1]
return "Hello, " .. name .. "!"
end
-- Zwei Argumente, Aufruf z. B.: {{#invoke:BananasArgs|add|5|3}}
function p.add(frame)
local num1 = tonumber(frame.args[1])
local num2 = tonumber(frame.args[2])
return num1 + num2
end
-- Benannte Argumente, Aufruf z. B.: {{#invoke:BananasArgs|count_fruit|bananas=5|apples=3}}
function p.count_fruit(frame)
local num_bananas = frame.args['bananas']
local num_apples = frame.args['apples']
return 'I have ' .. num_bananas .. ' bananas and ' .. num_apples .. ' apples'
end
-- Mischung aus regulären und benannten Argumenten und optionalen benannten Argumenten
-- Aufruf z. B.: {{#invoke:BananasArgs|has_fruit|Fred|bananas=5|cherries=7}}
function p.has_fruit(frame)
local name = frame.args[1]
local num_bananas = frame.args['bananas']
local num_apples = frame.args['apples']
local num_cherries = frame.args['cherries']
local result = name .. ' has:'
if num_bananas then result = result .. ' ' .. num_bananas .. ' bananas' end
if num_apples then result = result .. ' ' .. num_apples .. ' apples' end
if num_cherries then result = result .. ' ' .. num_cherries .. ' cherries' end
return result
end
-- Iteration über die Argumente, Aufruf z. B.: {{#invoke:BananasArgs|custom_fruit|pineapples=10|kiwis=5}}
function p.custom_fruit(frame)
local result = 'I have:'
for name, value in pairs(frame.args) do
result = result .. ' ' .. value .. ' ' .. name
end
return result
end
-- Iteration über Argumente mit separaten Argumenten
-- Aufruf z. B.: {{#invoke:BananasArgs|custom_fruit_2|Fred|pineapples=10|kiwis=5}}
function p.custom_fruit_2(frame)
local name = frame.args[1]
local result = name .. ' has:'
for name, value in pairs(frame.args) do
if name ~= 1 then
result = result .. ' ' .. value .. ' ' .. name
end
end
return result
end
return p