Lua只有一种数据结构,叫table。但是他灰常强大,足以满足我们一般的要求,而且可以根据table做出其他的效果。
--创建一个table,并将其引用使用a保存
a = {}
--向table中添加三条数据
a[1] = "hehe"
a[2] = "haha"
a[3] = "heihei"
--输出
for i = 1,3 do
	print(a[i])
end结果:--创建一个table,并将其引用使用a保存
a = {}
--table中的索引不仅限于number,使用其他类型的数据也可以作为索引 
a["hehe"] = "heihei"
local i = "hh"
a[i] = "haha"
local t = "hehe"
print(a[t])
print(a["hh"])
结果:--创建一个table,并将其引用使用a保存
a = {}
a["name"] = "puppet"
print(a.name)
a = {}
x = "y"
a[x] = 10
--表示a[x]未定义,为nil
print(a.x)
--表示a["y"],为10
print(a.y)结果: a = {}
 a[1] = "haha"
 --b与a引用了同一个table
 b = a
 print(b[1])
 --通过b对table操作等同于通过a对table操作
 b[1] = "heihei"
 print(a[1])
 a = nil
 --b还引用着table
 b = nil
 --现在table被收了
结果:a = {}我们也可以将table构造式用于数组的初始化,比如:--table构造式
day = {"Sunday", "Monday", "Tuesday", "Wendesday", "Thursday", "Friday", "Saturday"}
--注意,Lua中数组的开始为1,这一点与C等不同
print(day[1])
print(day[4])结果:a = {x = "hehe", y = "haha"}
print(a.x)
print(a.y)结果:a = {}
a.x = "hehe"
a.y = "heihei"
--最麻烦的写法如下:
--a["x"] = "hehe"
--a["y"] = "heihei"
print(a.x)
print(a.y)
a = {x = 1, y = "hehe"}
print(a.x)
print(a.y)结果:a = {x = "hehe", y = "heihei"}
b = {i = "haha"}
--将key z value b添加到table a中
a.z = b
--使用:a.z表示b,b.i索引到了“haha”
print(a.z.i)结果:a = {x = "hehe", y = "heihei"}
--当不需要一个字段时,将其赋值为nil
a.x = nila = {"Monday", "Tuesday", "Wednesday"}
--#a是取数组或者线性表最后一个索引值
for i = 1, #a do
	print(a[i])
end结果:--一个使用字段索引的table
a = {x = "hehe", y = "haha", z = "heihei"}
--使用迭代器进行迭代,每次i被赋予一个新的key,而k则会被赋值成key所对应的value
for i, k in pairs(a) do
	print(i, k)
end结果:a = {"Monday", "Tuesday", "Wednesday"}
--用于迭代传统数组的ipairs迭代器
for i, k in ipairs(a) do
	print(k)
end 结果:
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/puppet_master/article/details/47975653