首页 > 其他 > 详细

lua的模块与包

时间:2017-10-04 17:22:08      阅读:310      评论:0      收藏:0      [点我收藏+]

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

 

lua的模块与包

原文:http://www.cnblogs.com/xzxdm/p/7625845.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!