第一版是针对 Lua 5.0 编写的。虽然在很大程度上仍然适用于后续版本,但有一些差异。
第四版针对 Lua 5.3,可在 亚马逊 和其他书店购买。
购买本书,您还将帮助 支持 Lua 项目


关于本书

我于 1998 年冬季开始写这本书。(在南半球,这意味着年中。而“冬季”更像是温和的秋季。)当时,Lua 仍处于 3.1 版本。从那时起,Lua 经历了两次重大更改,第一次是在 2000 年升级到 4.0 版本,然后是在 2003 年升级到 5.0 版本。

很明显,这些更改对本书产生了重大影响。一些部分失去了其存在的理由,例如围绕上值复杂性的详细解释。整个章节都进行了重写,例如有关 C API 的章节,还创建了整个章节,例如有关协程的章节。

然而,不明显的是,编写本书对 Lua 的演变产生了重大影响。并非偶然,该语言中的一些最大更改是在本书更改时尚未涵盖的领域中进行的。在我通读本书时,有时我会突然卡在某个章节中。我想不出如何开始,甚至如何激励它。当您尝试解释如何使用某物时,您会更好地感受到使用它(或不使用它)的难易程度。因此,这些困难强烈暗示 Lua 中的某些内容需要改进。其他时候,我成功地写了一章,但后来才发现,没有人能够理解或同意我所写的内容。通常是我的错(作为一名作家),但偶尔我们会发现语言的另一个角落,值得改进。(例如,从上值到词法作用域的转变是由对本书早期草稿中描述上值作为一种词法作用域的软弱尝试的抱怨引发的。)

语言的更改延迟了本书的完成;现在本书的完成可能会延迟语言的重大更改。至少有两个原因:首先,Lua 5.0 比早期版本的语言更简洁、更成熟(部分归功于本书)。其次,本书增加了围绕该语言的文化分量,因此增加了其惯性。这种文化分量增加是我写这本书的主要目标之一。我的第二个主要目标是进一步扩大 Lua 的传播。