table表
table 是 Lua 语言中的一种“数据/代码结构”,可以用来帮助我们创建不同的“数据类型”,table是引用型的
- table初始化
--初始化 table
local tempTable = {}
local DicsTable = {}
--给table赋值
--数组方式
tempTable[1] = "TempA"
tempTable[2] = "TempB"
--键值对方式
DicsTable["key"] = "xiaoA"
DicsTable["key2"] = "xiaoB"
--添加数据,适合“数组模式”
table.insert(tempTable,"CC")
--移除数据
table.remove(tempTable,2)
--获取长度,适合“数组模式”
print(#tempTable)
--迭代器方式遍历 table,读取数据
--键值对结构,用pairs方法
for key, value in pairs(DicsTable) do
print(key,value)
end
--数组结构,用 ipairs 方法
for key,value in ipairs(tempTable) do
print(key,value)
end
模块
将一些常用的函数封装到一个独立 lua 脚本中,然后提供给其他的 lua 脚本访问使用。
- 模块当中基本的成员就是变量和函数
--定义模块
Calc = {}
--定义变量和函数
Calc.name = "计算器"
function Calc.Add(a,b)
return a+b
end
--模块最后要写 return 模块名
return Calc
- 引用模块用require
--引入模块
require("Mudule")
--调用模块方法
print(Calc.name)
print(Calc.Add(2,3))
Metatable 元表
元表(metatable)就是让两个表之间产生“附属”关系,只需要操作主表,就可以间接的操作元表。
TableA = {name = "小红",age = 23}
TableB = {gender = "女",}
--设置表B为表A的元表
setmetatable(TableA,TableB)
--判断表A是否有元表
print(getmetatable(TableA))
--设置索引后,表A可以访问表B成员
TableB.__index = TableB
print(TableA.name)
print(TableA.gender)