Lua标准库提供了一组丰富的函数,这些函数直接使用C API实现,并使用Lua编程语言构建.这些库提供Lua编程语言内的服务以及文件和数据库操作之外的服务.
这些在官方C API中构建的标准库作为单独的C模块提供.它包括以下 :
基本库,其中包含协程子库
模块库
字符串操作
表操作
数学库
文件输入和输出
操作系统设施
调试设施
我们在整个教程中使用了各种主题下的基本库.下表提供了相关页面的链接,并列出了本Lua教程各部分所涵盖的功能.
Sr.No. | Library/Method&目的 |
---|---|
1 | Error Handling 包括错误处理函数,如断言,错误,如 Lua - 错误处理. |
2 | Memory Management 包含与垃圾收集相关的自动内存管理功能,如 Lua - 垃圾收集. |
3 | dofile([filename]) 它打开文件并以块的形式执行文件的内容.如果没有传递参数,则此函数执行标准输入的内容.错误将传播给调用者. |
4 | _G 因此是保存全局环境的全局变量(即_G._G = _G). Lua本身不使用此变量. |
5 | getfenv([f]) 返回函数使用的当前环境. f可以是Lua函数或指定该堆栈级别的函数的数字 : 1级是调用getfenv的函数.如果给定函数不是Lua函数,或者f为0,则getfenv返回全局环境. f的默认值为1. |
6 | getmetatable(object) 如果object没有metatable,则返回nil.否则,如果对象的metatable具有"__metatable"字段,则返回关联的值.否则,返回给定对象的元表. |
7 | ipairs(t) 此函数获取表的索引和值. |
8 | load(func [, chunkname]) 使用函数func加载一个块来获取它的碎片.每次调用func都必须返回一个与之前结果连接的字符串. |
9 | loadfile([filename])) 与load类似,但从文件filename中获取块或者来自标准输入,如果没有给出文件名. |
10 | loadstring(string [,chunkname]) 与load类似,但从给定的块中获取string. |
11 | next(table [,index]) 允许程序遍历表的所有字段.它的第一个参数是一个表,它的第二个参数是该表中的索引. next返回表的下一个索引及其相关值. |
12 | pairs (t) 暂停正在运行的协同程序.传递给此方法的参数充当resume函数的附加返回值. |
13 | print (...) 暂停正在运行的协同程序.传递给此方法的参数充当resume函数的附加返回值. |
14 | rawequal(v1,v2) 检查v1是否等于v2,不调用任何metamethod.返回一个布尔值. |
15 | rawget(table,index) 获取table [index]的实际值,而不调用任何metamethod. table必须是一张桌子; index可以是任何值. |
16 | rawset(table, index, value) 将table [index]的实际值设置为value,而不调用任何metamethod. table必须是一个表,索引与nil不同的任何值,并为任何Lua值赋值.此函数返回表. |
17 | select(index,...) 如果index是数字,则返回参数编号索引后的所有参数.否则,index必须是字符串"#",并且select返回它收到的额外参数的总数. |
18 | setfenv(f,table) 设置环境由给定的函数使用. f可以是Lua函数或指定该堆栈级别的函数的数字 : 1级是调用setfenv的函数. setfenv返回给定的函数.作为一种特殊情况,当f为0时,setfenv会改变正在运行的线程的环境.在这种情况下,setfenv不返回任何值. |
19 | setmetatable(table,metatable) 设置给定表的元表. (您无法从Lua更改其他类型的元表,只能从C更改.)如果metatable为nil,则删除给定表的metatable.如果原始元表具有"__metatable"字段,则会引发错误.此函数返回表. |
20 | tonumber(e [,base]) 尝试将其参数转换为数字.如果参数已经是数字或可转换为数字的字符串,则tonumber返回此数字;否则,它返回nil. |
21 | tostring(e) 接收任何类型的参数并将其转换为合理格式的字符串.要完全控制数字的转换方式,请使用string.format. |
22 | type(v) 返回唯一参数的类型,编码为字符串.此函数的可能结果是"nil"(字符串,而不是值nil),"number","string","boolean","table","function","thread"和"userdata"./p> |
23 | unpack(list [,i [,j]]) 返回给定表中的元素. |
24 | _VERSION 一个全局变量(不是函数),它包含一个包含当前解释器版本的字符串.此变量的当前内容为"Lua 5.1". |
25 | Coroutines 包含协程操作函数,如 Lua - Coroutines . |
模块库提供了在Lua中加载模块的基本功能.它直接在全局环境中导出一个函数:require.其他所有内容都在表包中导出.有关模块库的详细信息,请参见前面的 Lua - Modules 教程.
Lua提供了一组丰富的字符串操作函数.早期的 Lua - Strings 教程详细介绍了这一点.
Lua在几乎所有操作中都依赖于表.早期的 Lua - Tables 教程详细介绍了这一点.
我们经常需要编程中的数据存储工具,这是由Lua中的文件I/O的标准库函数提供的.在早期的 Lua - File I/O 教程中对此进行了讨论.
Lua提供了一个调试库,它为我们提供了创建自己的调试器的所有原始函数.在早期的 Lua - 调试教程中对此进行了讨论.