Lua-- Table 类型

本文详细探讨 Lua 语言中核心的数据结构——Table,包括其动态特性和多种用途,如数组、关联数组、字典等。通过实例解析 Table 的创建、访问、操作及其在 Unity 开发中的应用。
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, 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值