構造式是用於建立和初始化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"}