1、table是Lua中唯一的数据结构,其他语言所提供的数据结构都是通过table来实现的;
(1)在Lua中通过整数下标访问table中的元素,就是数组,并且数组的大小不是固定的,可以动态增长。
a = {} --新建一个table
for i = 1, 1000 do
a[i] = 0
end
给数组的每一个元素赋值,范围之外的元素为nil,在Lua中默认的下标是从1开始的,标准库中的方法都是以此为标准。
(2)在Lua中也可以通过key来访问和设置元素,同样用键值对来查询数据。
a = {}
a["name"] = "wahaha"
a["age"'] = 100
2、Lua中的集合和包也是通过table来实现的,将集合中的所有数据和方法放在一个统一的table中,根据table来取出
包中的数据
3、元表和元方法:metatable / metamethod
Lua中metatable可以允许我们改变table的行为,比如可以定义metatable来定义两个table的相加行为,Lua中的每一个表都有其metable,默认创建一个不带metatable
的新表
t1 = {}
getmetatable(t1) -- 获取元表
t1 = {}
setmetatable(t1,t2) --设置元表,t1的元表为t2
任何表都可以是其他一个表的元表,一组行为类似的表可以共享一个m