第一版是針對 Lua 5.0 編寫的。雖然在很大程度上仍然適用於後續版本,但仍有一些差異。
第四版針對 Lua 5.3,可在 Amazon 和其他書店購買。
購買本書,您也可以協助 支援 Lua 專案。
![]() |
用 Lua 程式設計 | ![]() |
第二部分。表格和物件 第 11 章。資料結構 |
假設您想要列出程式碼來源中使用的所有識別碼;您需要以某種方式從您的清單中篩選出保留字。有些 C 程式設計師可能會想將保留字集合表示為字串陣列,然後搜尋此陣列來得知集合中是否有某個特定的字詞。為了加快搜尋速度,他們甚至可以使用二元樹或雜湊表來表示集合。
在 Lua 中,表示此類集合的有效且簡單的方式是將集合元素放入表格的索引中。然後,您只要索引表格並測試結果是否為 nil,而不必在表格中搜尋特定元素。在我們的範例中,我們可以撰寫以下程式碼
reserved = { ["while"] = true, ["end"] = true, ["function"] = true, ["local"] = true, } for w in allwords() do if reserved[w] then -- `w' is a reserved word ...(因為 while 是 Lua 中的保留字,所以我們無法將它用作識別碼。因此,我們無法撰寫
while = 1
;我們改用 ["while"] = 1
符號。)
您可以使用輔助函數來建立集合,這樣初始化會更清楚
function Set (list) local set = {} for _, l in ipairs(list) do set[l] = true end return set end reserved = Set{"while", "end", "function", "local", }
版權所有 © 2003–2004 Roberto Ierusalimschy。保留所有權利。 | ![]() |