模組:HelloWorld

出自維基百科,自由嘅百科全書
Jump to navigation Jump to search
模組解[]
-- Lua 入面所有注釋用兩個減號開頭

my_object = {};     --維基百科嘅Lua模組必須喺開頭定義一個變量,
                    --用來將結果送返畀維基百科個解析器。
                    --變量個名隨便你改,但要符合Lua語言規範。

my_object.hello = function( frame )     --喺my_object變量上定義函數。
                                        --維基百科道可以用#invoke指令調用爾啲函數。
                                        --函數被調用時,維基百科會向函數發送數據。
                                        --爾啲數據存喺frame入面
    
    local str = "Hello World!"  --定義局部變量。
    
    return str    --函數返回結果 "Hello world!"
    
end  -- hello函數結束。

my_object.hellowithparam = function( frame )
	local arg = frame.args[1] or 'anonymous' -- Lua數組下標從1開始
		                               -- frame.args有用#invoke嗰陣傳過來嘅參數
		                               -- frame.args[1]係第一個無名嘅參數
	local str = "Hello, " .. arg .. '!'  -- Lua入面用 .. 來連接字串
	return str
end -- hellowithparam函數結束


my_object.hellowithnamedparam = function( frame )
	local arg = frame.args["name"] or "anonymous"      -- 噉樣來引用有名嘅參數
	local str = "Hello, " .. arg .. '!'
	return str
end

return my_object  --模組最後都要用return將定義有函數嘅變量送返畀維基百科個解析器

-- 維基百科唔受 print 函數,請按上面寫法用return。

-- 而今可以用{{#invoke: HelloWorld | hello }}來行第一個函數 hello。
-- #invoke指令先指定模塊名稱,HelloWorld,再指定某一函數,hello。

-- 同樣,分別可以用
--     {{#invoke: HelloWorld | hellowithparam | 你個名}}
--                          同
--     {{#invoke: HelloWorld | hellowithnamedparam | name=你個名}}
--     來行第二同第三個函數,並且將參數「你個名」傳畀佢哋  


--[[
噉樣加一大段注釋
如果有個模用到你個模組,但係啲參數係傳畀個模而唔係個模組,噉就要用
frame:getParent().args 代替 frame.args
例子可以睇Template:Jpautocore
因為用嗰時係寫{{Jpautocore|參數}}而唔係直接寫{{#invoke:Jpingauto|main|參數}}
所以
    應該喺Template:Jpautocore道就噉寫{{#invoke:Jpingauto|main}}
    並且喺Module:Jpingauto道用frame:getParent().args而唔係frame.args

]]