第一版是針對 Lua 5.0 編寫的。雖然在很大程度上仍然適用於後續版本,但仍有一些差異。
第四版針對 Lua 5.3,可在 Amazon 和其他書店購買。
購買本書,您也協助 支援 Lua 專案


關於本書

我在 1998 年的冬天開始撰寫本書。(在南半球,這表示年中。而且「冬天」比較像溫和的秋天。)當時,Lua 仍是 3.1 版。從那時起,Lua 經歷了兩次重大變革,首先在 2000 年變更為 4.0 版,然後在 2003 年變更為 5.0 版。

很明顯地,這些變革對本書產生了重大影響。有些部分失去了存在的理由,例如關於封閉變數複雜性的詳細說明。整章內容都重新撰寫,例如關於 C API 的內容,而且建立了整章內容,例如關於協程的內容。

然而,不那麼明顯的是,撰寫本書對 Lua 的演變產生了重大影響。並非偶然,這門語言的一些最大變革出現在本書變更時尚未涵蓋的領域。在我撰寫本書時,有時會突然卡在某一章。我想不出如何開始,甚至如何激勵自己。當您嘗試說明如何使用某項功能時,您會更能感受到使用它的容易程度(或困難程度)。因此,這些困難明確暗示 Lua 中的某些事項需要改進。其他時候,我成功撰寫了一章,但後來才發現,沒有人能理解或認同我寫的內容。這經常是我的錯(作為作者),但偶爾我們會發現這門語言的另一個角落值得改進。(例如,從封閉變數轉換為詞彙範圍是由於抱怨在本書的早期草稿中,嘗試將封閉變數描述為一種詞彙範圍。)

這門語言的變革延遲了本書的完成;現在,本書的完成可能會延遲這門語言的重大變革。至少有兩個原因:首先,Lua 5.0 比這門語言的早期版本更簡潔、更成熟(部分歸功於本書)。其次,本書為這門語言的文化增添了份量,因此增加了它的慣性。這種文化份量的增加是我寫作本書的主要目標之一。我的第二個主要目標是進一步擴大 Lua 的傳播。