构造式是用于建立和初始化table的表达式。是Lua中最通用、最有用的机制之一。数组
最简单的构造式就是一个空构造式{},用于建立一个空table。构造式还能够用于初始化数组。数据结构
days = {"Sunday","Monday","Thuesday","Wednesday"}
这里将days[1]初始化为字符串“Sunday”、days[2]初始化为“Monday”lua
Lua还提供了一种特殊的语法初始化table记录:spa
a = {x = 10 ,y = 20} 等价于 a = {} a.x = 10 a.y = 20
建立table以后均可以再添加或删除其中的某些字段。构造式只是在table初始化时刻发挥做用。code
table建立链表代码:索引
list = nil for line in io.lines () do list = {next = list, value = line} end
也能够经过嵌套的构造式来表示复制的数据结构。Lua中的默认索引是从1开始的,如果真的须要以0开始能够经过这种方法:three
days = {[0] = "Sunday","Monday","Thuesday","Wednesday"}
如今第一个值“sunday”的索引就是0了。这个索引0不影响其余元素。“Monday”照常索引为1,后续其余值的索引依次递增。你也能够在最后一个元素后面写一个逗号,这个特性是可选的,也是合法。字符串
在Lua的构造式中还能够用分号代替逗号。一般会将分号用于分隔构造式中不一样的成分。io
{x = 10 ,y = 15; "one" , "two" , "three"}