表是 Lua 中唯一可用的內建資料結構。這要麼優雅簡潔,要麼令人困惑,這取決於你如何看待它。

Lua 表是鍵值對的集合,其中鍵是唯一的,鍵和值都不是 nil。因此,Lua 表可以類似於來自其他語言的字典,雜湊對映或關聯陣列。可以使用表構建許多結構模式:堆疊,佇列,集合,列表,圖形等。最後,表可用於在 Lua 中構建並建立模組系統。

Lua 沒有對錶的使用方式強制執行任何特定規則。表中包含的項可以是 Lua 型別的混合。因此,例如,一個表可以包含字串,函式,布林值,數字,甚至其他表作為值或鍵。

具有以 1 開頭的連續正整數鍵的 Lua 表被稱為具有序列。具有正整數鍵的鍵值對是序列的元素。其他語言稱這是一個基於 1 的陣列。某些標準操作和函式僅適用於表的序列,而某些操作和函式在應用於沒有序列的表時具有非確定性行為。

將表中的值設定為 nil 會將其從表中刪除。迭代器將不再顯示相關金鑰。編碼帶序列的表時,重要的是要避免破壞序列; 只刪除最後一個元素或使用一個函式,如標準 table.remove,它將元素向下移動以縮小間隙。