Lua - 标准图书馆

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  - 调试教程中对此进行了讨论.