码迷,mamicode.com
首页 > 其他好文 > 详细

lua的模块与包

时间:2017-10-04 17:30:26      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:模块与包   就会   lib   print   变量   地方   ack   目标   函数   

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的模块与包

标签:模块与包   就会   lib   print   变量   地方   ack   目标   函数   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!