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

이삭위키
둘러보기로 이동 검색으로 이동
(탭 문자를 공백 문자로 변경)
잔글 (판 3개를 가져왔습니다)
 

2023년 4월 17일 (월) 17:46 기준 최신판

위키백과에 있는 루아 모듈의 구조들을 보여주는 간단한 예제 함수입니다. 'Hello world'를 출력하는 종류의 비슷한 모듈로써 모듈:Bananas도 있습니다.


-- 위키백과의 모든 모듈은 테이블 변수를 정의해주는 것부터 시작해야 합니다.
-- 이 변수는 모듈 외부에서 접근하는 함수들이 이 모듈을 쓸 수 있게끔 해줍니다.
my_object = {};

-- 테이블 변수에 함수를 추가합니다. 함수를 쓸땐 #invoke 명령어로 쓸수 있습니다.
-- "frame"엔 위키백과에서 함수를 호출했을 때 같이 전달된 데이터(매개변수 등)가
-- 포함되어 있을 것입니다.
my_object.hello = function( frame ) 
 
    -- 지역 변수를 선언한 뒤 데이터를 넣습니다.
    -- (이 과정을 '값을 대입한다'라고 표현하기도 합니다.)
    local str = "Hello World!"  
 
    -- 함수를 종료함과 동시에 "str"의 데이터를 위키백과로 반환합니다.
    -- "print" 함수는 허용되지 않으므로 위키백과로 출력할 데이터들은 이 방법처럼
    -- 문자열로 반환해야 합니다.
    return str
 
-- 함수의 끝입니다.
end
 
-- 위키백과의 모든 모듈은 함수가 포함된 변수를 반환하는 것으로 끝나야 합니다.
return my_object
 
-- 이제 {{#invoke: HelloWorld | hello }}를 통해 이 모듈을 쓸 수 있습니다.
-- #invoke 명령어를 쓸 땐 모듈의 이름(HelloWorld)을 넣고,
-- 쓰고자 하는 함수의 이름(hello)을 매개변수로 넣어줍니다.