您的位置:首页 > 移动开发 > Cocos引擎

Cocos2d-Lua之table

2016-06-16 20:44 453 查看
一、一维数组

a = {1,2,3, x = 5, y = 7, 9, nil, 10, m = 11}
a[10] = 12
a.m = "a.m"
a["n"] = "a
"
len = table.maxn(a)
print("len = " .. len)
for i = 1, len do
print(a[i])
end
print("a.x = " .. a.x)
print("a[\"y\"] = " .. a["y"])
print("a.m = " .. a.m)
print("a.n = " .. a.n)


可以看到数组里可以存放各种类型的值,也可以存放键-值对,由于之前计算长度的“#”运算符对于数组结尾是nil的情况会特殊处理,这里用

len = table.maxn(a)


计算数组长度,可以看到这里计算出来的数组长度不包括键-值对的个数。

另外键-值对的表示方法可以是:

tablename.key键
或者
tablename["key键"]    //注意这里要加引号,不同于其他语言


输出结果:



Lua中的数组下标是从1开始的,如果想从0开始可以这么写:

a = {[0] = 1,2,3, x = 5, y = 7, 9, nil, 10, m = 11}


特殊字符也可以作为键值,只不过只能通过tablename[“key键”] 方式进行访问

b = {["+"] = "a", ["-"] = "b"}
print(b["+"])


二、二维数组

a = {{1, 2, 3}, {"aa", "bb", "cc"}}
a[3] = {"赵", "钱", "孙", "李"}

len = table.maxn(a);
for i = 1, len do
innerlen = table.maxn(a[i])
for j = 1, innerlen do
print(a[i][j])
end
end


输出结果:



说白了二维数组就是数组嵌套,也可以有多维数组,都是一样的道理。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: