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


受众

Lua 用户通常分为三类:已经将 Lua 嵌入应用程序中的人、将 Lua 独立使用的人以及将 Lua 与 C 一起使用的人。

许多人将 Lua 嵌入应用程序中,例如 CGILua(用于构建动态网页)或 LuaOrb(用于访问 CORBA 对象)。这些应用程序使用 Lua-C API 注册新函数、创建新类型并更改某些语言操作的行为,针对其特定域配置 Lua。通常,此类应用程序的用户甚至不知道 Lua 是针对特定域调整的独立语言;例如,CGILua 用户倾向于将 Lua 视为专门为 Web 设计的语言。

Lua 也可用作独立语言,主要用于文本处理和一次性的小程序。对于此类用途,Lua 的主要功能来自其标准库,该库提供模式匹配和其他字符串处理函数。我们可以将独立语言视为将 Lua 嵌入字符串和(文本)文件操作域。

最后,还有一些程序员从事另一项工作,即编写使用 Lua 作为库的应用程序。这些人用 C 编程的比用 Lua 编程的多,尽管他们需要很好地理解 Lua 才能创建简单、易用且与语言很好地集成的界面。

这本书对所有那些人来说都有很多内容可提供。第一部分涵盖了语言本身,展示了我们如何探索其所有潜力。我们专注于不同的语言结构,并使用大量示例来展示如何将它们用于实际任务。本部分的某些章节涵盖了基本概念,例如控制结构。但也有高级(且原创)主题,例如迭代器和协程。

第二部分完全致力于表,这是 Lua 中唯一的 data 结构。其章节讨论了数据结构、持久性、包和面向对象编程。在那里,我们将揭示该语言的真正力量。

第三部分介绍了标准库。对于那些将 Lua 用作独立语言的人来说,本部分特别有用,尽管许多其他应用程序也包含全部或部分标准库。本部分为每个标准库专门分配一章:数学库、表库、字符串库、I/O 库、操作系统库和调试库。

最后,本书的最后一部分涵盖了 Lua 和 C 之间的 API,供那些使用 C 来获得 Lua 全部功能的人使用。本部分必然与本书的其余部分有很大的不同。在那里,我们将使用 C 编程,而不是 Lua;因此,我们将戴一顶不同的帽子。对于一些读者来说,对 C API 的讨论可能无关紧要;对于另一些读者来说,这可能是本书最相关的部分。