您的位置:首页 > 编程语言 > Lua

table的创建与使用——LUA(1)

2014-10-18 10:37 316 查看


一、创建

local a = {}
哈哈,屌炸天了!

二、初始化
1、相信你一看就能明白:

local a = {["x"] = 12, ["mutou"] = 99, [3] = "hello"}

print(a["x"]);

对于字符串下标,我们可以省略方框和双引号,但是数字下标不可以,千万不要搞混了。例如:

local a = {x = 12, mutou = 99, [3] = "hello"}

print(a["x"]);

a["x"]这种调用方式也可以简化,例如:

local a = {x = 12, mutou = 99, [3] = "hello"}

print(a.x);

2、默认数字索引,完整代码:
local a = {[1] = 12, [2] = 43, [3] = 45, [4] = 90}

简化写法:local a = {12, 43, 45, 90}

print(a[1]);

3、table里面可以放table也可以放函数
含table:

local a = {

 {x = 1, y = 2},

 {x = 3, y = 10}

}

含函数:

function test()

 print("Hello Table");

end

local a = {[test] = 1}

print(a[test]);

三、使用与注意

1、table永远是匿名的,一个持有table的变量与table自身之间没有固定的关联性。

2、用a = nil的方法删除,当程序再也没有对一个table的引用时,lua垃圾回收器最终会删除table,并复用它的内存

3、a.x与a[x],前者表示a["x"],表示以字符串"x"来索引table。而后者是以变量x的值来索引table。
a = {}
x = "y"
a[x] = 10  --将10放入字段"y"
print(a[x])  --字段“y"的值
print(a.x)  --字段"x"(未定义的)的值
print(a.y)  --字段"y"的值

4、数组通常以1作为索引的起始值,并且不少机制依赖于这个惯例。在Lua5.1中,长度操作符"#"用于返回一个数组或线性表的最后一个索引值(或为其大小)。
print(a[#a])  --打印类表a的最后一个值
a[#a] = nil  --删除最后一个值
a[#a+1] = v  --将v添加到列表末尾

5、nil作为界定数组结尾的标志,对于处理含有“空隙”的数组,可以使用函数table.maxn,他将返回一个table的最大正索引数:
a = {}
a[10000]  = 1
print(table.maxn(a))  -->10000
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  cocos2d-x lua 2d 3d