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)()
 
*********************************************************
相关文章
相关标签/搜索