之前介绍过了如何通过 C 语言来编写新函数来扩展 Lua,这篇文章将介绍如何用 C 来编写新的类型来扩展 Lua。同时还会介绍除内存以外的其他资源。
《lua 程序设计》读书笔记(14):在 Lua 中调用 C 语言 & 编写 C 函数的技巧
上一篇文章主要讲解如何在 C 代码中调用 Lua 代码,即将 C 代码作为应用程序代码,Lua 代码作为库代码。这篇文章将介绍如何在 Lua 代码中调用 C 语言,即将 Lua 代码作为应用代码,将 C 代码作为库代码。
《lua 程序设计》读书笔记(13):C 语言 API 总览 & 扩展应用
Lua 是一种嵌入式语言,这就意味着 Lua 并不是一个独立的应用,而是一个库,它可以链接到其他应用程序,将 Lua 功能融入这些应用。这就涉及到 Lua 提供的 C API,通过这些 API,实现在自己的应用程序中通过 Lua 来扩展应用。
《lua 程序设计》读书笔记(12):反射
反射是程序用来检查和修改自身某些部分的能力。Lua 语言本身支持一部分反射能力,而调试库也提供了相关能力。虽然调试库提供的并不是 Lua 语言的调试器,但是其提供了编写我们自己调试器所需要的不同层次的所有底层机制。调试库与其他库不同,必须被慎重使用,因为某些功能性能不高,而且调试库会打破语言的一些固有限制。
《lua 程序设计》读书笔记(11):垃圾收集 & 协程
作为一本脚本语言,Lua 提供了自动内存管理机制,简化对内存资源的管理。Lua 还提供了协程机制,用于实现并发程序的编写。这篇文章将介绍 Lua 的垃圾收集以及协程机制。
《lua 程序设计》读书笔记(10):面向对象编程 & 环境
这篇文章将介绍如何在 Lua 中实现 面向对象编程,这里会用到上一篇文章介绍的元表知识。之后则将深入介绍 Lua 的运行环境,我们将了解到 Lua 全局变量背后的原理。
《lua 程序设计》读书笔记(9):迭代器 & 元表
迭代器是一种可以让我们遍历一个集合中所有元素的代码结构,这篇文章将介绍 Lua 的迭代器机制,而泛型 for 正是为简化迭代器的使用而设计的。之后则将介绍 Lua 的元表,元表的功能非常强大,通过元表,可以实现其他编程语言中 运算符 重载的效果、或者实现面向对象编程的 继承。
《lua 程序设计》读书笔记(8):编译、执行和错误 & 模块和包
虽然 Lua 被称为解释型语言,但是 Lua 总是在运行代码前先预先编译源码为中间代码。解释型语言的区分并不在于源码是否编译,而在于是否有能力执行动态生成的代码。正是由于dofile 这样的函数存在,才使得 Lua 能够被称为解释型语言。
这篇文章将介绍 Lua 的编译执行原理以及 Lua 的模块/包管理机制。
《lua 程序设计》读书笔记(7):数据结构 & 数据文件和序列化
这篇文章将介绍 Lua 中的数据结构,其实 Lua 只提供了 表 这唯一的数据结构,但是通过 表 可以实现数组、字典等数据结构。之后将介绍如何在 Lua 中实现数据结构的序列化和反序列化。
《lua 程序设计》读书笔记(6):日期时间 & 位和字节
这篇文章首先将介绍 Lua 标准库中操作日期时间相关的接口,之后则将介绍 Lua 中的的位/字节操作相关的 API。