概述
模块
例如在开发的过程中,有一些功能对于很多脚本都通用,这个时候就会考虑将这些功能抽出来,放到另外一个文件内,要用的时候直接调用即可。
在Lua内称之为模块。
代码
LuaHelper.lua.txt
注意local的变量或者函数是不能被外部访问的
helper={}
function helper.const(tab)
local meta={
-- 按照tab的键值情况生成一个meta,所以下面setmetatable({},meta)中可以是{}
-- 返回一个空table,起作用的是meta
__index=function(self,key)
if tab[key]==nil then
error("尝试访问不存在的字段:" .. key)
else
return tab[key]
end
end,
__newindex=function(self, key, value)
error("尝试修改不存在字段:" .. key)
end,
}
return setmetatable({},meta)
end
return helper
调用脚本
require 'LuaHelper'
local tb = helper.const({
fire = true
})
print(tb.fire)
tb.fire=false
原理
我个人认为,说起来是模块,其实就是一个表而已。
require就是获得那个模块的return回来的那个表,并把那个表加入到当前的环境内。
最后
以上就是深情香烟为你收集整理的Lua 封装自己的库(require)模块代码原理的全部内容,希望文章能够帮你解决Lua 封装自己的库(require)模块代码原理所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复