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