lua 表操作
表的初始化
创建表
# 列表式:{value, value2, value3, ...}
t = {1,2,3,4}
# 记录式:(key=value, key2=value2, key3=value3, ...)
# key为lua标识符(只能由字母、数字、下划线组成)时,可不用中括号
# 不符合lua标识符规范的,需要用中括号括起来
t2 = {x='gtlx', y=2, z="hzw"}
# 混合使用列表示式、记录式:{value, value2, key=value3,...}
t3 = {1,2,3,key='瓜田李下'}
示例:表初始化
Lua 5.4.4 Copyright (C) 1994-2022 Lua.org, PUC-Rio
-- 列表法表示
> t={1,2,3,4,5,6}
> #t
6
-- key、value表示
> t={t=1}
> t={t=1,t2=2}
-- 不能用纯数字标识key,且不能以数字开头
> t={1=1}
stdin:1: '}' expected near '='
> t={11=1}
stdin:1: '}' expected near '='
> t={1a=1}
stdin:1: malformed number near '1a'
> t={_a=1}
> t={_1=1}
> t={a1=1}
示例:表元素引用
Lua 5.4.4 Copyright (C) 1994-2022 Lua.org, PUC-Rio
> t={1,2,3,4,5,6}
-- 使用[1]引用数据,从1开始计数
> t[0]
nil
> t[1]
1
> t[2]
2
-- 不能用t.num
> t.1
stdin:1: syntax error near '.1'
-- key、value只能用t.key引用,不能用t.num
> t={t1=1,t2=2}
> t[1]
nil
> t.t1
1
> t.t2
2
示例:使用索引位添加表元素
Lua 5.4.4 Copyright (C) 1994-2022 Lua.org, PUC-Rio
> t={1,2,3,4,5,6}
-- 初始元素为6个
> #t
6
-- 在索引位8处添加元素
> t[8]=8
> #t
8
-- 在索引位9处添加元素
> t[9]=9
> #t
9
-- 在索引位20处添加元素,#t计算表的长度不精确
> t[2