我是靠谱客的博主 深情香烟,最近开发中收集的这篇文章主要介绍Lua 封装自己的库(require)模块代码原理,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

模块

例如在开发的过程中,有一些功能对于很多脚本都通用,这个时候就会考虑将这些功能抽出来,放到另外一个文件内,要用的时候直接调用即可。

在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)模块代码原理所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部