Lua table 详解

来源:互联网 发布:招聘网络女主播 编辑:程序博客网 时间:2024/05/22 06:13

1、table定义

table是Lua最复杂最强大的数据结构,Lua本身并不是面向对象语言,但是对面向对象中毒比较深的程序员,可以借助table”完美”地模拟面向对象编程。最简单地,我们可以把table理解为数组,最复杂的,我们可以把table理解为”世间万物”。

2、初始化

local a = {["x"] = 12, ["mutou"] = 99, [3] = "hello"}    或者   local a = {x = 12, mutou = 99, [3] = "hello"}
print(a["x"]);

在LuaEditor中创建一个lua文件,输入以上代码,保存,然后按F5运行,我们将看到输出窗口输出了一个数字:12。

local a = {x = 12, mutou = 99, [3] = "hello"}
print(a.x);

是字符串下标才这么做!!!结果输出仍是12。

local a = {12, 43, 45, 90}
print(a[1]);

输出仍是12!

table默认的第一个索引下标是1,并且很多相关的函数也假设table的第一个索引下标为1,所以大家最好遵守这个规则。

3、table的table

table什么都能放,当然也能放table了,如下:

复制代码代码如下:

local a = {
 {x = 1, y = 2},
 {x = 3, y = 10}
}

我们定义了一个table,命名为a,table有两个元素,分别是两个没有名字的table,根据第5条所说的规则,没有显示指定下标,那Lua就会默认给table的元素赋予下标(从1开始)。

因此,a的第一个元素就是{x = 1, y = 2},调用a的第一个元素的方式为:a[1]
由于a[1]又是一个table,所以,再次调用table的x下标的值:a[1].x
4、table之函数赋值

function test()
 print("Hello Table");
end
local a = {[test] = 1}
print(a[test]);
0 0
原创粉丝点击