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 = nil
a = {"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