모듈:BananasArgs: 두 판 사이의 차이
둘러보기로 이동
검색으로 이동
잔글편집 요약 없음 |
잔글 (판 7개를 가져왔습니다) |
||
(다른 사용자 한 명의 중간 판 3개는 보이지 않습니다) | |||
26번째 줄: | 26번째 줄: | ||
end | end | ||
-- | -- 이름을 가진 매개변수 | ||
-- 이런 식으로 씀: {{#invoke:BananasArgs|count_fruit|바나나=5|사과=3}} | -- 이런 식으로 씀: {{#invoke:BananasArgs|count_fruit|바나나=5|사과=3}} | ||
function p.count_fruit(frame) | function p.count_fruit(frame) | ||
local num_bananas = frame.args['바나나'] | local num_bananas = frame.args['바나나'] | ||
local num_apples = frame.args['사과'] | local num_apples = frame.args['사과'] | ||
return ' | return '저는 바나나 ' .. num_bananas .. '개와 사과 ' .. num_apples .. '개를 가지고 있습니다.' | ||
end | end | ||
-- 일반적인 매개변수와 | -- 일반적인 매개변수와 이름을 가진 매개변수를 혼합해서 사용하기 | ||
-- 이런 식으로 씀: {{#invoke:BananasArgs|has_fruit|민준|바나나=5|체리=7}} | -- 이런 식으로 씀: {{#invoke:BananasArgs|has_fruit|민준|바나나=5|체리=7}} | ||
function p.has_fruit(frame) | function p.has_fruit(frame) | ||
42번째 줄: | 42번째 줄: | ||
local num_cherries = frame.args['체리'] | local num_cherries = frame.args['체리'] | ||
local result = name .. ' | local result = name .. '님은' | ||
if num_bananas then result = result .. ' 바나나 ' .. num_bananas .. '개' end | if num_bananas then result = result .. ' 바나나 ' .. num_bananas .. '개' end | ||
if num_apples then result = result .. ' 사과 ' .. num_apples .. '개' end | if num_apples then result = result .. ' 사과 ' .. num_apples .. '개' end | ||
53번째 줄: | 53번째 줄: | ||
-- 이런 식으로 씀: {{#invoke:BananasArgs|custom_fruit|파인애플=10|키위=5}} | -- 이런 식으로 씀: {{#invoke:BananasArgs|custom_fruit|파인애플=10|키위=5}} | ||
function p.custom_fruit(frame) | function p.custom_fruit(frame) | ||
local result = ' | local result = '저는' | ||
for name, value in pairs(frame.args) do | for name, value in pairs(frame.args) do | ||
result = result .. ' ' .. name .. ' ' .. value .. '개' | result = result .. ' ' .. name .. ' ' .. value .. '개' | ||
65번째 줄: | 65번째 줄: | ||
function p.custom_fruit_2(frame) | function p.custom_fruit_2(frame) | ||
local name = frame.args[1] | local name = frame.args[1] | ||
local result = name .. ' | local result = name .. '님은' | ||
for name, value in pairs(frame.args) do | for name, value in pairs(frame.args) do | ||
-- name이 1이 아니라면(~=) | -- name이 1이 아니라면(~=) |
2023년 4월 17일 (월) 17:46 기준 최신판
예제
예제 | 결과 |
---|---|
{{#invoke:BananasArgs|hello_world}}
|
Hello, world! |
{{#invoke:BananasArgs|hello|민준}}
|
안녕하세요, 민준님! |
{{#invoke:BananasArgs|add|5|3}}
|
8 |
{{#invoke:BananasArgs|count_fruit|바나나=5|사과=3}}
|
저는 바나나 5개와 사과 3개를 가지고 있습니다. |
{{#invoke:BananasArgs|has_fruit|민준|바나나=5|체리=7}}
|
민준님은 바나나 5개 체리 7개를 가지고 있습니다. |
{{#invoke:BananasArgs|custom_fruit|파인애플=10|키위=5}}
|
저는 파인애플 10개 키위 5개를 가지고 있습니다. |
{{#invoke:BananasArgs|custom_fruit_2|민준|파인애플=10|키위=5}}
|
민준님은 키위 5개 파인애플 10개를 가지고 있습니다. |
같이 보기
-- 매개변수에 어떻게 접근하는지 보여주는 예제 모듈
-- Frame 객체에 대해 더 자세히 알고 싶으시면, http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Frame_object를 참고하세요.
-- 유닛 테스트는 [[모듈:BananasArgs/시험장]]에 있습니다.
local p = {}
-- 매개변수 없음
-- 이런 식으로 씀: {{#invoke:BananasArgs|hello_world}}
function p.hello_world()
return "Hello, world!"
end
-- 한개의 매개변수
-- 이런 식으로 씀: {{#invoke:BananasArgs|hello|민준}}
function p.hello(frame)
local name = frame.args[1]
return "안녕하세요, " .. name .. "님!"
end
-- 두개의 매개변수
-- 이런 식으로 씀: {{#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
-- 이름을 가진 매개변수
-- 이런 식으로 씀: {{#invoke:BananasArgs|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
-- 일반적인 매개변수와 이름을 가진 매개변수를 혼합해서 사용하기
-- 이런 식으로 씀: {{#invoke:BananasArgs|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
result = result .. '를 가지고 있습니다.'
return result
end
-- 매개변수를 반복해서 읽기
-- 이런 식으로 씀: {{#invoke:BananasArgs|custom_fruit|파인애플=10|키위=5}}
function p.custom_fruit(frame)
local result = '저는'
for name, value in pairs(frame.args) do
result = result .. ' ' .. name .. ' ' .. value .. '개'
end
result = result .. '를 가지고 있습니다.'
return result
end
-- 별도로 써야하는 매개변수와 함께 매개변수를 반복해서 읽기
-- 이런 식으로 씀: {{#invoke:BananasArgs|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
-- name이 1이 아니라면(~=)
if name ~= 1 then
result = result .. ' ' .. name .. ' ' .. value .. '개'
end
end
result = result .. '를 가지고 있습니다.'
return result
end
return p