모듈:BananasArgs: 두 판 사이의 차이

이삭위키
둘러보기로 이동 검색으로 이동
(새 문서: -- 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 -- ...)
 
(한국어 번역 및 현지화)
1번째 줄: 1번째 줄:
-- 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
-- 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
-- Frame 객체에 대해 더 자세히 알고 싶으시면, http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Frame_object를 참고하세요.
-- 유닛 테스트는 [[모듈:BananasArgs/시험장]]에 있습니다.
   
   
local p = {}
local p = {}
   
   
-- No arguments, used like: {{#invoke:BananasArgs|hello_world}}
-- 매개변수 없음
-- 이런 식으로 씀: {{#invoke:BananasArgs|hello_world}}
function p.hello_world()
function p.hello_world()
     return "Hello, world!"
     return "Hello, world!"
end
end
   
   
-- One argument, used like: {{#invoke:BananasArgs|hello|Fred}}
-- 한개의 매개변수
-- 이런 식으로 씀: {{#invoke:BananasArgs|hello|민준}}
function p.hello(frame)
function p.hello(frame)
     local name = frame.args[1]
     local name = frame.args[1]
     return "Hello, " .. name .. "!"
     return "안녕하세요, " .. name .. "!"
end
end
   
   
-- Two arguments, used like: {{#invoke:BananasArgs|add|5|3}}
-- 두개의 매개변수
-- 이런 식으로 씀: {{#invoke:BananasArgs|add|5|3}}
function p.add(frame)
function p.add(frame)
     local num1 = tonumber(frame.args[1])
     local num1 = tonumber(frame.args[1])
23번째 줄: 27번째 줄:
end
end
   
   
-- Named arguments, used like: {{#invoke:BananasArgs|count_fruit|bananas=5|apples=3}}
-- name을 가진 매개변수
-- 이런 식으로 씀: {{#invoke:BananasArgs|count_fruit|바나나=5|사과=3}}
function p.count_fruit(frame)
function p.count_fruit(frame)
     local num_bananas = frame.args['bananas']
     local num_bananas = frame.args['바나나']
     local num_apples = frame.args['apples']
     local num_apples = frame.args['사과']
     return 'I have ' .. num_bananas .. ' bananas and ' .. num_apples .. ' apples'
     return '전 바나나 ' .. num_bananas .. '개와 사과 ' .. num_apples .. '개를 가지고 있습니다.'
end
end
   
   
-- Mixing regular args with named args and optional named args
-- 일반적인 매개변수와 name을 가진 매개변수를 혼합해서 사용
-- Used like: {{#invoke:BananasArgs|has_fruit|Fred|bananas=5|cherries=7}}
-- 이런 식으로 씀: {{#invoke:BananasArgs|has_fruit|민준|바나나=5|체리=7}}
function p.has_fruit(frame)
function p.has_fruit(frame)
     local name = frame.args[1]
     local name = frame.args[1]
     local num_bananas = frame.args['bananas']
     local num_bananas = frame.args['바나나']
     local num_apples = frame.args['apples']
     local num_apples = frame.args['사과']
     local num_cherries = frame.args['cherries']
     local num_cherries = frame.args['체리']
   
   
     local result = name .. ' has:'
     local result = name .. '씨는'
     if num_bananas then result = result .. ' ' .. num_bananas .. ' bananas' end
     if num_bananas then result = result .. ' 바나나 ' .. num_bananas .. '' end
     if num_apples then result = result .. ' ' .. num_apples .. ' apples' end
     if num_apples then result = result .. ' 사과 ' .. num_apples .. '' end
     if num_cherries then result = result .. ' ' .. num_cherries .. ' cherries' end
     if num_cherries then result = result .. ' 체리 ' .. num_cherries .. '' end
result = result .. '를 가지고 있습니다.'
     return result
     return result
end
end
   
   
-- Iterating over args, used like: {{#invoke:BananasArgs|custom_fruit|pineapples=10|kiwis=5}}
-- 매개변수를 반복해서 읽기
-- 이런 식으로 씀: {{#invoke:BananasArgs|custom_fruit|파인애플=10|키위=5}}
function p.custom_fruit(frame)
function p.custom_fruit(frame)
     local result = 'I have:'
     local result = ''
     for name, value in pairs(frame.args) do
     for name, value in pairs(frame.args) do
         result = result .. ' ' .. value .. ' ' .. name
         result = result .. ' ' .. name .. ' ' .. value .. '개'
     end
     end
result = result .. '를 가지고 있습니다.'
     return result
     return result
end
end
   
   
-- Iterating over args with separate mandatory args
-- 별도로 써야하는 매개변수와 함께 매개변수를 반복해서 읽기
-- Used like: {{#invoke:BananasArgs|custom_fruit_2|Fred|pineapples=10|kiwis=5}}
-- 이런 식으로 씀: {{#invoke:BananasArgs|custom_fruit_2|민준|파인애플=10|키위=5}}
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 .. ' has:'
     local result = name .. '씨는'
     for name, value in pairs(frame.args) do
     for name, value in pairs(frame.args) do
    -- name이 1이 아니라면(~=)
         if name ~= 1 then
         if name ~= 1 then
             result = result .. ' ' .. value .. ' ' .. name
             result = result .. ' ' .. name .. ' ' .. value .. '개'
         end
         end
     end
     end
result = result .. '를 가지고 있습니다.'
     return result
     return result
end
end
   
   
return p
return p

2015년 11월 12일 (목) 22:25 판

예제

예제 결과
{{#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개를 가지고 있습니다.

같이 보기


-- 매개변수에 어떻게 접근하는지 보여주는 예제 모듈
-- For more about the Frame object, see http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Frame_object
-- 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
 
-- name을 가진 매개변수
-- 이런 식으로 씀: {{#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
 
-- 일반적인 매개변수와 name을 가진 매개변수를 혼합해서 사용
-- 이런 식으로 씀: {{#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