摘要:
# Lua 垃圾回收 Lua 采用了自动内存管理。 这意味着你不用操心新创建的对象需要的内存如何分配出来, 也不用考虑在对象不再被使用后怎样释放它们所占用的内存。 Lua 运行了一个**垃圾收集器**来收集所有**死对象** (即在 Lua 中不可能再访问到的对象)来完成自动内存管理的工作。 Lua 阅读全文
摘要:
# Lua 调试(Debug) Lua 提供了 debug 库用于提供创建我们自定义调试器的功能。 Lua 本身并未有内置的调试器,但很多开发者共享了他们的 Lua 调试器代码。 Lua 中 debug 库包含以下函数: | 序号 | 方法 & 用途 | | : | : | | 1. | **deb 阅读全文
摘要:
# Lua 错误处理 程序运行中错误处理是必要的,在我们进行文件操作,数据转移及web service 调用过程中都会出现不可预期的错误。 如果不注重错误信息的处理,就会造成信息泄露,程序无法运行等情况。 任何程序语言中,都需要错误处理。错误类型有: - 语法错误 - 运行错误 ## 语法错误 语法 阅读全文
摘要:
# Lua 文件 I/O lua常用的就是内存操作,和redis,mysql,kafka中间件打通。 Lua I/O 库用于读取和处理文件。 分为简单模式(和C一样)、完全模式。 - 简单模式(simple model)拥有一个当前输入文件和一个当前输出文件,并且提供针对这些文件相关的操作。 - 完 阅读全文
摘要:
# Lua 协同程序(coroutine) **目前来说基本用不到,暂时记录** ## 什么是协同(coroutine)? Lua 协同程序(coroutine)与线程比较类似: 拥有独立的堆栈,独立的局部变量,独立的指令指针,同时又与其它协同程序共享全局变量和其它大部分东西。 协同是非常强大的功能 阅读全文
摘要:
# Lua 元表(Metatable) **在 Lua table 中我们可以访问对应的 key 来得到 value 值,但是却无法对两个 table 进行操作(比如相加)。** 因此 Lua 提供了元表(Metatable),允许我们改变 table 的行为,每个行为关联了对应的元方法。 例如,使 阅读全文
摘要:
# Lua 模块与包 模块类似于一个封装库, 从 Lua 5.1 开始,Lua 加入了标准的模块管理机制, 可以把一些公用的代码放在一个文件里,以 API 接口的形式在其他地方调用, 有利于代码的重用和降低代码耦合度。 Lua 的模块是由变量、函数等已知元素组成的 **table**, 因此创建一个 阅读全文