Lua之模块与元表

一:

1.模块概念:将某些常用的函数封装在一个独立的Lua脚本中,以供其他脚本使用。模块中基本的成员就是变量和函数。(功能上类似于C#中的静态类)


2.模块的基本使用
①创建模块
a.创建一个新的Lua脚本并且命名 *脚本名与模块名一致,且模块脚本与调用它的脚本路径应当一致
b.初始化模块,即初始化一个table表
c.在模块中定义变量和函数 *格式:模块名.变量名  模块名.函数名
d.结束模块,return 模块名





②使用模块
a.模块的引入 require("模块名") / require"模块名"
b.访问变量(可以在其他脚本中改变模块中变量的值)
c.访问方法




二:
1.元表概念:如果需要同时操作两个表,就需要使这两个表关联起来,产生附属关系,一个为主表,一个为元表(子表),从而达到只操作主表,就可以间接操作元表的目的。




2.元表操作
①基本用法
a.实例化两个普通表
b.关联两个表[将B设置为A的元表]
setmetatable(表A,表B)


extra:getmetatable(表名)
如果表名有元表,返回元表的类型和地址;如果没有,返回nil。





②__index
引入:关联两个表后,一般访问主表,但此时访问不到元表的成员,此时需要设置__index索引,让索引指向元表自身,再使用表名.键名的方式访问,若主表中没有会自动访问元表中的成员。



猜你喜欢

转载自blog.csdn.net/LightInDarkness/article/details/78822456
今日推荐