Lua标准库

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。 否则,如果objectmetatable具有__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调试教程中讨论过了。