- 定义表(table)的方式
a={},b={…}
- 访问表的成员
通过"."或者"[]"运算符来访问表的成员 (注意:表达式a.b等价于a["b"],但不等价于a[b])
- 表项的键和值
任何类型的变量,除了nil,都可以作为表项的键.从简单的数值,字符串,到复杂的函数,表等等都可以;同样,任何类型的变量除了nil,都可以作为表项的值.给一个表项的值赋nil,则把表a中键为"b"的项删除.如果访问一个不存在的表项,其值也是nil,比如有c=a.b,但表a中没有为"b"的项,则c等于nil.
一段程序:
a={} b={x=1,["hello,"]="world!"} a.astring="ni,hao!" a[1]=100 a["a table"]=b function foo() end function bar() end a[foo]=bar --分别穷举表a和b for k,v in pairs(a) do print(k,"=>",v) end print("----------------------") for k, v in pairs(b) do print(k,"=>",v) end
输出结果:
>lua -e "io.stdout:setvbuf 'no'" "2.lua"
1 => 100
a table => table: 0066CE38
astring => ni,hao!
function: 0066B778 => function: 0066B798
----------------------
hello, => world!
x => 1
>Exit code: 0