0%

反射是程序用来检查和修改自身某些部分的能力。Lua 语言本身支持一部分反射能力,而调试库也提供了相关能力。虽然调试库提供的并不是 Lua 语言的调试器,但是其提供了编写我们自己调试器所需要的不同层次的所有底层机制。调试库与其他库不同,必须被慎重使用,因为某些功能性能不高,而且调试库会打破语言的一些固有限制。

阅读全文 »

迭代器是一种可以让我们遍历一个集合中所有元素的代码结构,这篇文章将介绍 Lua 的迭代器机制,而泛型 for 正是为简化迭代器的使用而设计的。之后则将介绍 Lua 的元表,元表的功能非常强大,通过元表,可以实现其他编程语言中 运算符 重载的效果、或者实现面向对象编程的 继承

阅读全文 »

虽然 Lua 被称为解释型语言,但是 Lua 总是在运行代码前先预先编译源码为中间代码。解释型语言的区分并不在于源码是否编译,而在于是否有能力执行动态生成的代码。正是由于dofile 这样的函数存在,才使得 Lua 能够被称为解释型语言。

这篇文章将介绍 Lua 的编译执行原理以及 Lua 的模块/包管理机制。

阅读全文 »

由于 Lua 强调可移植性和嵌入型,所以 Lua 本身并没有提供太多与外部交互的机制。在真实的 Lua 程序中,从图形、数据库到网络访问等大多数 I/O 操作,要么由宿主程序实现,要么通过不包括在发行版中的外部库实现。Lua 本身只提供了 ISO C 语言标准库支持的功能,即基本的文件操作。

这篇文章介绍 Lua 中的 I/O 机制,同时补充一些 Lua 编程的基础知识。

阅读全文 »

Lua 表是 Lua 中最重要的数据结构(也是唯一的数据结构),Lua 的全局变量、模块组织等功能都与 Lua 表相关,Lua 表很好地体现了 Lua 精简的设计思路。任何一门编程语言都会提供函数,以实现代码的模块化、抽象化,而 Lua 也不例外。这篇文章将学习 Lua 中的表和函数。

阅读全文 »