모듈:User:Orion/연습장2
입력 | 출력 |
---|---|
{{#invoke:User:Orion/연습장2|hello_world}} | 여러분, 안녕하세요! |
{{#invoke:User:Orion/연습장2|hello|철수}} | 철수님 안녕하세요! |
{{#invoke:User:Orion/연습장2|add|5|3}} | 8 |
{{#invoke:User:Orion/연습장2|count_fruit|바나나=5|사과=3}} | 나는 바나나 5 개와 사과 3 개를 갖고 있습니다. |
{{#invoke:User:Orion/연습장2|has_fruit|철수|바나나=5|체리=7}} | 철수가 가진 것은?: 바나나 5 개, 체리 7 개 |
{{#invoke:User:Orion/연습장2|custom_fruit|파인애플=10|키위=5}} | 내가 가진 것은?: 파인애플 10 개 키위 5 개 |
{{#invoke:User:Orion/연습장2|custom_fruit_2|철수|파인애플=10|키위=5}} | 철수가 가진것은?: 파인애플 10 개 키위 5 개 |
-- Sample Module demonstrating how to access arguments.
-- For more about the Frame object, see http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Frame_object
-- Unit tests at Module:BananasArgs/tests
local p = {}
-- No arguments, used like: {{#invoke:User:Orion/연습장1|hello_world}}
function p.hello_world()
return "여러분, 안녕하세요!"
end
-- One argument, used like: {{#invoke:User:Orion/연습장1|hello|철수}}
function p.hello(frame)
local name = frame.args[1]
return name.. "님 안녕하세요!"
end
-- Two arguments, used like: {{#invoke:User:Orion/연습장1|add|5|3}}
function p.add(frame)
local num1 = tonumber(frame.args[1])
local num2 = tonumber(frame.args[2])
return num1 + num2
end
-- Named arguments, used like: {{#invoke:User:Orion/연습장1|count_fruit|바나나=5|사과=3}}
function p.count_fruit(frame)
local num_bananas = frame.args['바나나']
local num_apples = frame.args['사과']
return '나는 바나나 ' .. num_bananas .. ' 개와 사과 ' .. num_apples .. ' 개를 갖고 있습니다.'
end
-- Mixing regular args with named args and optional named args
-- Used like: {{#invoke:User:Orion/연습장1|has_fruit|철수|바나나=5|체리=7}}
function p.has_fruit(frame)
local name = frame.args[1]
local num_bananas = frame.args['바나나']
local num_apples = frame.args['사과']
local num_cherries = frame.args['체리']
local result = name .. '가 가진 것은?:'
if num_bananas then result = result .. ' 바나나 ' .. num_bananas .. ' 개' end
if num_apples then result = result .. ', 사과 ' .. num_apples .. ' 개' end
if num_cherries then result = result .. ', 체리 ' .. num_cherries .. ' 개' end
return result
end
-- Iterating over args, used like: {{#invoke:User:Orion/연습장1|custom_fruit|파인애플=10|키위=5}}
function p.custom_fruit(frame)
local result = '내가 가진 것은?:'
for name, value in pairs(frame.args) do
result = result .. ' ' .. name .. ' ' .. value .. ' 개'
end
return result
end
-- Iterating over args with separate mandatory args
-- Used like: {{#invoke:User:Orion/연습장1|custom_fruit_2|철수|파인애플=10|키위=5}}
function p.custom_fruit_2(frame)
local name = frame.args[1]
local result = name .. '가 가진것은?:'
for name, value in pairs(frame.args) do
if name ~= 1 then
result = result .. ' ' .. name .. ' ' .. value .. ' 개'
end
end
return result
end
return p