print("******* Table ******* ")
-- 所有的复杂类型都是table(表)
-- print("******* 数组 ******* ")
a = {1,2,3,4,5,6,"1234",true, nil}
-- Lua中索引从1开始,所以所以0为nil
print(a[0])
print(a[1], a[2])
-- #是通用的获取长度的关键字
-- 在打印长度的时候,nil被忽略
print(#a)
-- 因为lua底层获取长度规则的问题, # 取得的table长度并不一定准确
-- 例如以下例子中,# 会从中间的nil截断,#a=1,
-- a = {1, nil, 2, nil}
-- 有的则不判定,直接把nil当成一个元素,#a=6(末尾的nil始终忽略)
-- a = {1,2,3,nil,4,5,nil}
-- 因此遍历的时候并不推荐使用 # 来获取table的长度,用 pairs
-- print("******* 数组的遍历 ******* ")
-- 通过 # 不可靠
for i = 1, #a do
print(a[i])
end
-- print("******* 二维数组 ******* ")
a = {
{1,2,3},
{4,"12",true},
{5,6}
}
print(a[1][1])
print(a[2][2])
-- print("******* 二维数组的遍历 ******* ")
for i = 1, #a do
for j = 1, #a[i] do
print(a[i][j])
end
end
-- print("******* 自定义索引 ******* ")
-- 以下表示元素1,2,3,4,5的索引分别是0,1,2,-1,3
aa = {[0] = 1, 2, 3, [-1] = 4, 5}
print(aa[0])
print(aa[3])
print(aa[-1])
-- 长度为3,因为索引为0,-1的索引非Lua的常规索引,不被算在长度中
print(#aa)
-- 注意!!!! 以下为坑
-- 以下长度为 5
aa = {[1] = 1, [2] = 2, [4] = 4,