Lua标准库
Lua标准库提供了一组丰富的函数,这些函数直接使用C语言API实现,并使用Lua编程语言构建。这些库提供Lua编程语言中的服务以及文件和数据库操作之外的服务。
这些在官方C语言API中构建的标准库作为单独的C模块提供。它包括以下内容 -
- 基本库,包括协程子库
- 模块库
- 字符串操作
- 表操作
- 数学库
- 文件输入和输出
- 操作系统设施
- 调试工具
1. 基础库
我们在整个教程中使用了各种主题下的基本库。 下表提供了相关页面的链接,并列出了本Lua教程各部分所涵盖的功能。
编号 | 库/方法 | 作用 |
---|---|---|
1 | 错误处理 | 包括错误处理函数,如断言, 错误,如Lua错误处理中所述。 |
2 | 内存管理 | 包括与垃圾收集相关的自动内存管理功能, 如Lua垃圾收集中所述。 |
3 | dofile ([filename]) |
它打开文件并以块的形式执行文件的内容。 |
4 | _G |
因此是保存全局环境的全局变量(即_G._G = _G )。 |
5 | getfenv ([f]) |
返回函数使用的当前环境。 |
6 | getmetatable (object) |
如果object 没有metatable , 则返回nil 。 否则,如果object 的metatable 具有__metatable 字段, |
7 | ipairs (t) |
此函数获取表的索引和值。 |
8 | load (func [, chunkname]) |
使用函数func 加载一个块来获取它的碎片。 |
9 | loadfile ([filename])) |
与load 类似,但是如果没有给出文件名,则从文件filename 或标准输入中获取块。 |
10 | loadstring (string [, chunkname]) |
与load 函数类似,但从给定的字符串中获取块。 |
11 | next (table [, index]) |
允许程序遍历表的所有字段。 |
12 | pairs (t) |
暂停正在运行的协同程序。 |
13 | print (...) |
打印给定的参数值。 |
14 | rawequal (v1, v2) |
检查v1 是否等于v2 ,而不调用任何无方法。 返回一个布尔值。 |
15 | rawget (table, index) |
获取table [index] 的值, 而不调用任何方法。table 必须是表; index 可以是任何值。 |
16 | rawset (table, index, value) |
将table [index] 的值设置为value ,而不调用任何方法。 |
17 | select (index, ...) |
如果index 是数字,则返回参数编号索引后的所有参数。 |
18 | setfenv (f, table) |
设置给定函数使用的环境。 |
19 | setmetatable (table, metatable) |
设置给定表的元表。 |
20 | tonumber (e [, base]) |
尝试将参数转换为数字。 |
21 | tostring (e) |
接收任何类型的参数并将其转换为合理格式的字符串。 |
22 | type (v) |
返回唯一参数的类型,编码为字符串。 |
23 | unpack (list [, i [, j]]) |
返回给定表中的元素。 |
24 | _VERSION |
包含当前解释器版本的字符串的全局变量(不是函数)。 |
25 | 协同程序 | 包括Lua协同程序中解释的协程操作功能。 |
2. 模块库
模块库提供了在Lua中加载模块的基本功能。 它直接在全局环境中导出一个函数:require
。 其他所有内容都在表包中导出。 有关模块库的详细信息,请参见前面的Lua模块教程。
3. 字符串操作
Lua提供了丰富的字符串操作功能。 前面的Lua字符串教程详细中介绍了这一点。
4. 表操作
Lua几乎在其所有操作中都依赖于表。 前面的Lua表教程详中细介绍了这一点。
5. 文件输入和输出
经常需要编程中的数据存储工具,这是由Lua中的文件I/O的标准库函数提供的。 它在前面的Lua 文件操作教程中讨论过。
6. 调试工具
Lua提供了一个调试库,它提供了创建自己的调试器的所有原始函数。 在前面的Lua调试教程中讨论过了。