lua的模块与包

1.require("")也可以 require "" 。注意:他会创建一个全局变量,全局变量在lua中要特别注意,由全局变量的重名产生的bug一般都会被认为是“奇怪的,无法复现的bug”

最好是 local m = require("") XXMgr = m.new() 这种形式

如果要使用全局函数,比如定时器里面

使用(function() end)或者局部内部函数local function XXX() end 然后(XXX) --括号为参数

总之,全局变量在lua中只有在必要的时候才使用,比如像上面在游戏启动之初创建的各种管理器,方便在游戏的任何地方直接使用

2.模块就是一个封装,比如一个类,一个表

3.require函数在package.path的值里面寻找文件,可以使用他来添加搜索路径 package.path = package.path .. ";src/"

或者改变环境变量:

#LUA_PATH
export LUA_PATH="~/lua/?.lua;;"

文件路径以 ";" 号分隔,最后的 2 个 ";;" 表示新加的路径后面加上原来的默认路径。

如果找过目标文件,则会调用 package.loadfile 来加载模块。否则,就会去找 C 程序库。

搜索的文件路径是从全局变量 package.cpath 获取,而这个变量则是通过环境变量 LUA_CPATH 来初始。

搜索的策略跟上面的一样,只不过现在换成搜索的是 so 或 dll 类型的文件。如果找得到,那么 require 就会通过 package.loadlib 来加载它。

4.lua可以直接使用require导入c库

5.参考文献:http://www.runoob.com/lua/lua-modules-packages.html

 

posted @ 2017-10-04 17:13  小张学代码  阅读(244)  评论(0编辑  收藏  举报