Zum Inhalt springen

„Modul:DemoArgs“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[ungesichtete Version][ungesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
KKeine Bearbeitungszusammenfassung
KKeine Bearbeitungszusammenfassung
Zeile 5: Zeile 5:
local p = {}
local p = {}
-- Keine Argumente, Aufruf z. B.: {{#invoke:BananasArgs|hello_world}}
-- Keine Argumente, Aufruf z. B.: {{#invoke:BananasArgs|Hallo_Welt}}
function p.hello_world()
function p.Hallo_Welt()
return "Hello, world!"
return "Hello, world!"
end
end
-- Ein Argument, Aufruf z. B.: {{#invoke:BananasArgs|hello|Peter}}
-- Ein Argument, Aufruf z. B.: {{#invoke:BananasArgs|Hallo|Peter}}
function p.hello(frame)
function p.Hallo(frame)
local name = frame.args[1]
local name = frame.args[1]
return "Hello, " .. name .. "!"
return "Hallo, " .. name .. "!"
end
end


-- Zwei Argumente, Aufruf z. B.: {{#invoke:BananasArgs|add|5|3}}
-- Zwei Argumente, Aufruf z. B.: {{#invoke:BananasArgs|addiere|5|3}}
function p.add(frame)
function p.addiere(frame)
local num1 = tonumber(frame.args[1])
local num1 = tonumber(frame.args[1])
local num2 = tonumber(frame.args[2])
local num2 = tonumber(frame.args[2])
Zeile 23: Zeile 23:
end
end


-- Benannte Argumente, Aufruf z. B.: {{#invoke:BananasArgs|count_fruit|bananas=5|apples=3}}
-- Benannte Argumente, Aufruf z. B.: {{#invoke:BananasArgs|Obstzaehlen|Bananen=5|Aepfel=3}}
function p.count_fruit(frame)
function p.Obstzaehlen(frame)
local num_bananas = frame.args['bananas']
local num_bananen = frame.args['Bananen']
local num_apples = frame.args['apples']
local num_aepfel = frame.args['Aepfel']
return 'I have ' .. num_bananas .. ' bananas and ' .. num_apples .. ' apples'
return 'Ich habe ' .. num_bananen .. ' Bananen and ' .. num_aepfel .. ' Äpfel'
end
end


-- Mischung aus regulären und benannten Argumenten und optionalen benannten Argumenten
-- Mischung aus regulären und benannten Argumenten und optionalen benannten Argumenten
-- Aufruf z. B.: {{#invoke:BananasArgs|has_fruit|Fred|bananas=5|cherries=7}}
-- Aufruf z. B.: {{#invoke:BananasArgs|Obstkorb|Peter|Bananen=5|Kirschen=7}}
function p.has_fruit(frame)
function p.Obstkorb(frame)
local name = frame.args[1]
local name = frame.args[1]
local num_bananas = frame.args['bananas']
local num_Bananen = frame.args['Bananen']
local num_apples = frame.args['apples']
local num_Aepfel = frame.args['Aepfel']
local num_cherries = frame.args['cherries']
local num_Kirschen = frame.args['Kirschen']
local result = name .. ' has:'
local result = name .. ' hat in seinem Obstkorb:'
if num_bananas then result = result .. ' ' .. num_bananas .. ' bananas' end
if num_Bananen then result = result .. ' ' .. num_Bananen .. ' Bananen' end
if num_apples then result = result .. ' ' .. num_apples .. ' apples' end
if num_Aepfel then result = result .. ' ' .. num_Aepfel .. ' Äpfel' end
if num_cherries then result = result .. ' ' .. num_cherries .. ' cherries' end
if num_Kirschen then result = result .. ' ' .. num_Kirschen .. ' Kirschen' end
return result
return result
end
end


-- Iteration über die Argumente, Aufruf z. B.: {{#invoke:BananasArgs|custom_fruit|pineapples=10|kiwis=5}}
-- Iteration über die Argumente, Aufruf z. B.: {{#invoke:BananasArgs|Obst1|Ananas=10|Kiwis=5}}
function p.custom_fruit(frame)
function p.Obst1(frame)
local result = 'I have:'
local result = 'Ich kaufe:'
for name, value in pairs(frame.args) do
for name, value in pairs(frame.args) do
result = result .. ' ' .. value .. ' ' .. name
result = result .. ' ' .. value .. ' ' .. name
Zeile 55: Zeile 55:


-- Iteration über Argumente mit separaten Argumenten
-- Iteration über Argumente mit separaten Argumenten
-- Aufruf z. B.: {{#invoke:BananasArgs|custom_fruit_2|Fred|pineapples=10|kiwis=5}}
-- Aufruf z. B.: {{#invoke:BananasArgs|Obst2|Peter|Ananas=10|Kiwis=5}}
function p.custom_fruit_2(frame)
function p.Obst2(frame)
local name = frame.args[1]
local name = frame.args[1]
local result = name .. ' has:'
local result = name .. ' kauft:'
for name, value in pairs(frame.args) do
for name, value in pairs(frame.args) do
if name ~= 1 then
if name ~= 1 then

Version vom 12. Mai 2013, 00:26 Uhr

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:

Hello, world!

Ein Argument

{{#invoke:DemoArgs|Hallo|Peter}}

ergibt:

Hallo, Peter!

Zwei Argumente

{{#invoke:DemoArgs|addiere|5|3}}

ergibt:

8

Benannte Argumente

{{#invoke:DemoArgs|Obstzaehlen|Bananen=5|Aepfel=3}}

ergibt:

Ich habe 5 Bananen and 3 Äpfel

Mischung aus regulären und benannten Argumenten und optionalen benannten Argumenten

{{#invoke:DemoArgs|Obstkorb|Peter|Bananen=5|Kirschen=7}}

ergibt:

Peter hat in seinem Obstkorb: 5 Bananen 7 Kirschen

Iteration über die Argumente

{{#invoke:DemoArgs|Obst1|Ananas=10|Kiwis=5}}

ergibt:

Ich kaufe: 5 Kiwis 10 Ananas

Iteration über Argumente mit separaten Argumenten

{{#invoke:DemoArgs|Obst2|Peter|Ananas=10|Kiwis=5}}

ergibt:

Peter kauft: 5 Kiwis 10 Ananas

-- 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|Hallo_Welt}}
function p.Hallo_Welt()
    return "Hello, world!"
end
 
-- Ein Argument,  Aufruf z. B.:  {{#invoke:BananasArgs|Hallo|Peter}}
function p.Hallo(frame)
    local name = frame.args[1]
    return "Hallo, " .. name .. "!"
end

-- Zwei Argumente,  Aufruf z. B.: {{#invoke:BananasArgs|addiere|5|3}}
function p.addiere(frame)
    local num1 = tonumber(frame.args[1])
    local num2 = tonumber(frame.args[2])
    return num1 + num2
end

-- Benannte Argumente, Aufruf z. B.: {{#invoke:BananasArgs|Obstzaehlen|Bananen=5|Aepfel=3}}
function p.Obstzaehlen(frame)
    local num_bananen = frame.args['Bananen']
    local num_aepfel  = frame.args['Aepfel']
    return 'Ich habe ' .. num_bananen .. ' Bananen and ' .. num_aepfel .. ' Äpfel'
end

-- Mischung aus regulären und benannten Argumenten und optionalen benannten Argumenten
-- Aufruf z. B.: {{#invoke:BananasArgs|Obstkorb|Peter|Bananen=5|Kirschen=7}}
function p.Obstkorb(frame)
    local name = frame.args[1]
    local num_Bananen  = frame.args['Bananen']
    local num_Aepfel   = frame.args['Aepfel']
    local num_Kirschen = frame.args['Kirschen']
    
    local result = name .. ' hat in seinem Obstkorb:'
    if num_Bananen  then result = result .. ' ' .. num_Bananen  .. ' Bananen'  end
    if num_Aepfel   then result = result .. ' ' .. num_Aepfel   .. ' Äpfel'    end
    if num_Kirschen then result = result .. ' ' .. num_Kirschen .. ' Kirschen' end
    return result
end

-- Iteration über die Argumente, Aufruf z. B.: {{#invoke:BananasArgs|Obst1|Ananas=10|Kiwis=5}}
function p.Obst1(frame)
    local result = 'Ich kaufe:'
    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|Obst2|Peter|Ananas=10|Kiwis=5}}
function p.Obst2(frame)
    local name = frame.args[1]
    local result = name .. ' kauft:'
    for name, value in pairs(frame.args) do
        if name ~= 1 then
            result = result .. ' ' .. value .. ' ' .. name
        end
    end
    return result
end

return p