Lua 隨記

Lua 中的模塊功能html

在用Lua 處理遊戲中的UI界面時,一個UI界面對應一個Lua文件時,當這個UI界面處理的功能過多時,會致使一個lua文件中代碼過多,這時可經過Lua中模塊的功能來優化,直接使用require("model_name")來載入,載入的文件後綴是lua,也能夠添加文件的路徑,如require("A/B/model_name").
在使用過程當中會遇到 當收到服務器消息用Lua來處理時,通常會將處理消息的功能函數分紅另一個模塊,若是每次收到消息都要require會不會產生問題?require函數載入一樣的Lua文件時,只有第一次的時候回去執行,會面相同的都不執行,因此當被require的文件中有變量初始問題的,使用require不用擔憂.
若是想要每次都要執行須要使用dofile()函數;若是你要載入後不執行,須要時再執行時 可使用loadfile()函數。
     如 local hello = loadfile("hello")
          ......
          hello()
 
 loadfile("hello")後hello文件並不執行,當執行hello()時才真的執行。
如下引用酷殼中的例子:
*********************************************************
假設咱們有一個文件叫mymod.lua,內容以下:
文件名:mymod.lua
1
2
3
4
5
6
7
8
9
10
11
local HaosModel = {}
 
local function getname()
     return "Hao Chen"
end
 
function HaosModel.Greeting()
     print( "Hello, My name is " ..getname())
end
 
return HaosModel

因而咱們能夠這樣使用:shell

1
2
local hao_model = require( "mymod" )
hao_model.Greeting()

其實,require乾的事就以下:(因此你知道爲何咱們的模塊文件要寫成那樣了)服務器

1
2
3
local hao_model = (function ()
   --mymod.lua文件的內容--
end)()
 
*********************************************************
相關文章
相關標籤/搜索