Lua 术语表

专有名词注释查阅表 | 1 个分类

Glossary

Lua 专有名词查阅表

名词列表

Lua 术语表已完整补全,分为三个独立文件:

核心语言术语(Core Language)

详见:lua-glossary-core.md

包含 Lua 基础概念:变量与数据类型、控制流(if/for/while)、运算符、函数定义、作用域、注释等核心语言特性。

标准库术语(Standard Library)

详见:lua-glossary-stdlib.md

包含 Lua 标准库核心模块:table 库、string 库、math 库、io 库、os 库、package 库、coroutine 库、debug 库等常用 API。

高级特性术语(Advanced Features)

详见:lua-glossary-advanced.md

包含 Lua 高级特性:元表与元方法、协程、闭包、面向对象编程、模块系统、迭代器、尾调用优化等。

术语导航

A-C

  • anonymous function(匿名函数)
  • array(数组)
  • assignment(赋值)
  • block(代码块)
  • boolean(布尔值)

C-F

  • closure(闭包)
  • comment(注释)
  • coroutine(协程)
  • data type(数据类型)
  • environment(环境)

F-I

  • function(函数)
  • function factory(函数工厂)
  • garbage collection(垃圾回收)
  • global variable(全局变量)
  • hash table(哈希表)
  • higher-order function(高阶函数)

I-M

  • inheritance(继承)
  • iterator(迭代器)
  • lexical scope(词法作用域)
  • local variable(局部变量)
  • loop(循环)
  • metatable(元表)

M-P

  • metamethod(元方法)
  • module(模块)
  • multiple return values(多返回值)
  • nil(空值)
  • object(对象)
  • OOP(面向对象编程)

P-T

  • package(包)
  • pairs/ipairs(迭代器)
  • polymorphism(多态)
  • random seed(随机种子)
  • string(字符串)
  • table(表)

T-V

  • tail call(尾调用)
  • thread(线程)
  • type checking(类型检查)
  • upvalue(向上值)
  • varargs(可变参数)
  • variable(变量)

快速链接

Lua 高级特性名词注释 (Advanced Features Glossary)

A

术语英文释义
匿名函数Anonymous Function没有名字的函数,常用作回调:function(x) return x * 2 end
尾调用优化Tail Call Optimization函数最后一步调用另一函数时复用当前栈帧,避免栈溢出,用于实现尾递归

C

术语英文释义
Class面向对象中的模板/类型,Lua 通过表和元表模拟类的概念
类对象Class Instance类的具体实例,通过调用类的构造函数创建
闭包Closure捕获外层局部变量的函数,即使外层函数已返回,闭包仍能访问这些变量
协程Coroutine可挂起和恢复执行的函数,非抢占式多任务,适合异步编程和迭代器
协程池Coroutine Pool预创建协程的集合,复用协程减少创建开销

D

术语英文释义
深度复制Deep Copy递归复制表及其嵌套表,避免共享引用导致的数据修改问题
依赖注入Dependency Injection将依赖对象传入而非内部创建的编程模式,提高模块可测试性
设计模式Design Pattern解决特定问题的可复用代码结构,如单例、工厂、观察者等

E

术语英文释义
封装Encapsulation将数据和操作封装在对象中,Lua 可通过闭包和下划线约定实现
事件系统Event System基于发布-订阅的设计模式,组件注册监听器响应事件

F

术语英文释义
文件对象File Objectio.open 返回的句柄,提供 readwriteclose 等方法
函数工厂Function Factory返回函数的函数,根据参数生成不同行为的函数
函数记忆化Function Memoization缓存函数调用结果避免重复计算,提升递归函数性能
工厂模式Factory Pattern通过工厂函数创建对象,隐藏具体实现细节

G

术语英文释义
垃圾回收Garbage Collection自动内存管理机制,回收不再引用的表和对象,Lua 内置增量式 GC
生成器Generator使用协程实现的迭代器,通过 coroutine.wrap 简化创建

H

术语英文释义
高阶函数Higher-Order Function接受函数为参数或返回函数的函数,如 mapfilter
继承Inheritance子类获得父类属性和方法,Lua 通过元表链实现单继承和多继承

I

术语英文释义
迭代器Iterator返回序列值对象,每次调用返回下一个值,Lua 通过协程轻松实现迭代器
不可变对象Immutable Object创建后状态不可改变的对象,Lua 通过只读元表实现

L

术语英文释义
LuaRocksLuaRocksLua 的包管理器,用于安装和管理第三方库,类似 pip/npm

M

术语英文释义
元方法Metamethod元表中的特殊方法,如 __add__index__call,定义表的操作行为
元表Metatable附加在表上改变其行为的表,通过 setmetatable 设置
元编程Metaprogramming代码操作代码的技术,Lua 通过元表和 load 函数实现简单的元编程
模块Module组织代码的单元,将相关函数和变量封装在表中,避免全局污染
模块缓存Module Cachepackage.loaded 表存储已加载模块,避免重复加载
多继承Multiple Inheritance类继承多个父类,Lua 通过多索引查找实现多继承
多返回值Multiple Return Values函数返回多个值,如 function() return 1, 2, 3 end

O

术语英文释义
对象Object拥有状态(属性)和行为(方法)的实体,Lua 中表就是对象
面向对象编程OOP以对象为中心的编程范式,核心概念:封装、继承、多态
openrestyOpenResty基于 Nginx 的高性能 Web 平台,通过 Lua 扩展实现动态 Web 服务

P

术语英文释义
Package一组相关模块的集合,发布和分发的单位
包路径Package Pathpackage.path 定义 Lua 模块搜索路径,包含通配符 ?
管道模式Pipeline Pattern将数据通过一系列处理函数传递,类似 Unix 管道
多态Polymorphism同一操作作用于不同对象产生不同行为,Lua 通过方法覆盖实现
私有变量Private Variable类内部使用不对外公开的变量,Lua 通过闭包或下划线约定实现
生产者-消费者模式Producer-Consumer Pattern一方生产数据一方消费数据,通过协程或队列协调

R

术语英文释义
requireRequire加载模块的标准函数,检查缓存并调用搜索器加载模块
读写锁Read-Write Lock允许多读单写的并发控制模式,通过元表模拟实现

S

术语英文释义
沙箱Sandbox限制代码执行权限的环境,防止恶意或危险操作
浅复制Shallow Copy只复制表第一层,嵌套表仍共享引用
单例模式Singleton Pattern类只有一个实例,全局唯一访问点
弱表Weak Table值为弱引用的表,垃圾回收可自动清理其中的对象,用于缓存和避免循环引用
弱引用Weak Reference不阻止垃圾回收的引用类型,弱表中的键或值为弱引用时可不阻止 GC

T

术语英文释义
表引用Table Reference变量存储的是表的引用而非副本,多个变量可指向同一表
尾递归Tail Recursion函数最后一步是调用自身,适合被尾调用优化,避免栈溢出

U

术语英文释义
UpvalueUpvalue闭包捕获的外层局部变量,提供闭包访问和持久化状态的能力

V

术语英文释义
向量Vector表示方向或点的数据结构,Lua 中用 {x, y} 或表模拟二维/三维向量

W

术语英文释义
工作池Worker Pool预创建工作线程/协程的集合,任务分发给空闲工作器处理

Y

术语英文释义
YieldYield协程挂起点,coroutine.yield() 暂停执行并返回值给 resume 调用者

__

术语英文释义
__add 元方法Addition Metamethod定义表加法操作 + 的行为
__call 元方法Call Metamethod使表可像函数一样调用 table(),定义表的”调用”行为
__concat 元方法Concat Metamethod定义表连接操作 .. 的行为
__div 元方法Division Metamethod定义表除法操作 / 的行为
__eq 元方法Equality Metamethod定义表相等比较 == 的行为
__gc 元方法Garbage Collection Metamethod对象被垃圾回收前调用,用于清理资源(如关闭文件)
__index 元方法Index Metamethod访问表不存在的键时调用,可用于实现继承和默认值
__le 元方法Less-Equal Metamethod定义表小于等于比较 <= 的行为
__len 元方法Length Metamethod定义表长度操作 # 的行为
__lt 元方法Less-Than Metamethod定义表小于比较 < 的行为
__metatable 元方法Metatable Protection保护元表,阻止获取和修改元表
__mod 元方法Modulo Metamethod定义表取模操作 % 的行为
__mul 元方法Multiplication Metamethod定义表乘法操作 * 的行为
__newindex 元方法New Index Metamethod对表不存在的键赋值时调用,可实现只读表或自动创建嵌套表
__pow 元方法Power Metamethod定义表幂运算 ^ 的行为
__pairs 元方法Pairs Metamethod定义 pairs() 的遍历行为(Lua 5.3+)
__sub 元方法Subtraction Metamethod定义表减法操作 - 的行为
__tostring 元方法To String Metamethod定义 tostring()print() 的输出格式
__unm 元方法Unary Minus Metamethod定义表负号操作 -table 的行为
__ipairs 元方法IPairs Metamethod定义 ipairs() 的遍历行为(Lua 5.3+)

Lua 核心语言名词注释 (Core Language Glossary)

A

术语英文释义
算术运算符Arithmetic OperatorLua 的算术运算符:+(加)、-(减)、*(乘)、/(除)、^(幂)、%(取模)、-(负号)
赋值语句Assignment Statement将值赋给变量的操作,Lua 支持多重赋值 a, b = b, a(交换变量)

B

术语英文释义
块作用域Block Scopedo...end 包裹的代码块,局部变量在其中有效
布尔值BooleanLua 的布尔类型,只有 truefalse,注意 0 和空字符串也是真

C

术语英文释义
注释Comment代码中的说明文字,单行注释 --,多行注释 --[[...]]
continue 语句Continue StatementLua 5.2+ 支持的循环控制语句,跳过本次迭代继续下一次
条件分支Conditional Branch根据条件选择执行路径的结构,使用 if...then...elseif...else...end

D

术语英文释义
数据类型Data TypeLua 变量的类型系统,包括 nil、boolean、number、string、function、table、thread、userdata
do…end 块Do-End BlockLua 的代码块语法,用于创建作用域

E

术语英文释义
跳出语句Escape Statement退出循环的关键字,如 break 跳出循环

F

术语英文释义
falseFalse布尔假值,与 nil 一起被视为假
for 循环For Loop数值 for 循环 for i=start, end, step do...end 和泛型 for 循环 for k, v in pairs(t) do...end
函数FunctionLua 中的一等公民,可存储在变量中、作为参数传递、作为返回值,支持多返回值和可变参数
函数定义Function Definition使用 function name()...endlocal name = function()...end 定义函数
函数调用Function Call执行函数的操作,使用 func(args) 调用

G

术语英文释义
全局变量Global Variable未使用 local 声明的变量,存储在全局表 _G 中,建议尽量使用局部变量
goto 语句Goto StatementLua 5.2+ 支持的跳转语句,跳转到指定标签位置

I

术语英文释义
if 语句If Statement条件分支语句,语法 if condition then...end,可配合 elseifelse
整数IntegerLua 5.3+ 支持的整数类型,与浮点数区分,如 420xFF
ipairsIPairs遍历数组风格表的迭代器,按整数索引 1 开始顺序遍历,遇到 nil 停止

L

术语英文释义
局部变量Local Variable使用 local 关键字声明的变量,作用域限于声明的块内,访问速度比全局变量快
逻辑运算符Logical OperatorLua 的逻辑运算符:and(与)、or(或)、not(非),支持短路求值
循环结构Loop Structure重复执行代码的结构,包括 while、for、repeat-until 三种

M

术语英文释义
多重赋值Multiple Assignment同时给多个变量赋值,如 a, b = 1, 2,Lua 会先计算右侧再赋值

N

术语英文释义
nilNil表示”不存在”或”无效值”,未初始化变量默认为 nil,从表中删除键设为 nil
数值 for 循环Numeric For Loopfor i = start, stop, step do...end,自动控制循环次数

O

术语英文释义
运算符Operator用于操作的符号,包括算术、关系、逻辑、字符串连接、表访问运算符

P

术语英文释义
pairsPairs遍历表(字典风格)的迭代器,无序遍历所有键值对,包括 nil 值
参数Parameter函数定义时的占位符,分为形参和实参
repeat-until 循环Repeat-Until Looprepeat...until condition,循环体至少执行一次,条件为真时结束

R

术语英文释义
关系运算符Relational Operator比较运算符:==(等于)、~=(不等于)、<(小于)、>(大于)、<=(小于等于)、>=(大于等于)

S

术语英文释义
字符串StringLua 的文本类型,支持单引号、双引号、长字符串 [[...]],字符串不可变
字符串连接String Concatenation使用 .. 运算符连接字符串,如 "Hello" .. " Lua"
短路求值Short-Circuit Evaluation逻辑运算符的优化策略,a and b 在 a 为假时直接返回 a,不计算 b
作用域Scope变量可见性和生存时间的范围,Lua 有全局作用域和局部(块)作用域
语句StatementLua 程序的基本执行单元,包括赋值、函数调用、控制结构等

T

术语英文释义
tableTableLua 唯一的容器类型,可表示数组、字典、对象等,是引用类型
trueTrue布尔真值,除 falsenil 外的所有值都为真
类型判断Type Checking使用 type() 函数判断变量类型,返回字符串如 “string”、“number”
类型转换Type Conversion使用 tonumber()tostring() 在数值和字符串间转换

U

术语英文释义
标识符Identifier变量、函数、表的命名,须以字母或下划线开头,后跟字母、数字、下划线
upvalueUpvalue闭包中捕获的外层局部变量,闭包通过 upvalue 访问和保持状态

V

术语英文释义
ValueLua 表达式计算的结果,包括 8 种基本类型的具体值
变量Variable存储值的命名位置,使用 local 声明为局部变量,不声明为全局变量
可变参数Varargs使用 ... 表示的函数参数,可接受任意数量的实参,在函数内用 {...} 转为表

W

术语英文释义
while 循环While Loopwhile condition do...end,条件为真时重复执行循环体

X

术语英文释义
协程状态Coroutine Status协程的运行状态:suspended(暂停)、running(运行)、normal(正常)、dead(结束)

术语英文释义
# 运算符Length Operator一元运算符,获取字符串长度 #str 或数组长度 #arr,表长度不定义时返回最大整数索引

Lua 标准库名词注释 (Standard Library Glossary)

C

术语英文释义
collectgarbageCollect Garbage手动触发垃圾回收的函数,collectgarbage("collect") 强制回收,collectgarbage("stop") 暂停
coroutine.createCreate Coroutine创建协程的函数,参数为要执行的函数,返回协程对象
coroutine.resumeResume Coroutine启动或恢复协程执行,参数为协程和传递给协程的值,返回执行状态和返回值
coroutine.statusCoroutine Status查询协程状态的函数,返回 “running”、“suspended”、“normal” 或 “dead”
coroutine.wrapWrap Coroutine创建协程包装函数,返回一个函数,调用该函数等同于 resume 协程
coroutine.yieldYield Coroutine挂起协程并返回值,调用 resume 时可传递值给协程

D

术语英文释义
debug.debugDebug REPL进入交互式调试器的函数,输入 Lua 代码执行
debug.getinfoGet Debug Info获取函数或调用栈信息的函数,可获取函数定义位置、调用者等
debug.tracebackTraceback获取调用栈的字符串表示,常用于错误处理中生成堆栈跟踪
dofileDo File执行文件的函数,dofile("script.lua") 读取并执行文件,无错误保护
dongetmetatableGet Metatable获取表的元表(需设置 __metatable 字段才可获取)

E

术语英文释义
errorError抛出错误的函数,error("message", level) 可指定错误层级
_GGlobal Environment全局环境表,存储所有全局变量,_G._G == _G
getmetatableGet Metatable获取对象的元表,如元表设置了 __metatable 则返回该值而非元表
io.closeClose File关闭文件,file:close()io.close(file)
io.flushFlush Output刷新输出缓冲区,将缓冲数据写入文件或标准输出
io.inputSet Input File设置默认输入文件,io.input(filename) 打开文件,io.input():read() 读取
io.linesIterate File Lines返回文件行的迭代器,for line in io.lines("file.txt") do...end
io.openOpen File打开文件的函数,返回文件对象,模式:“r”(读)、“w”(写)、“a”(追加)
io.outputSet Output File设置默认输出文件,类似 io.input
io.popenPipe I/O执行系统命令并返回可读写的文件对象(部分环境支持)
io.readRead from Input从标准输入读取,io.read("*all")io.read("*line")io.read("*n")
io.tmpfileTemporary File返回临时文件的读写句柄,程序结束时自动删除
io.typeCheck File Type检查对象是否为合法文件句柄,返回 “file”、“closed file” 或 nil
io.writeWrite to Output向标准输出或文件写入,等同于 io.output():write()

L

术语英文释义
loadLoad Chunk加载代码字符串或函数的函数,返回编译后的函数或错误,可指定环境
loadfileLoad File从文件加载代码,类似 load,但从文件读取
loadstringLoad String加载代码字符串,loadstring("code") 已废弃,推荐使用 load

M

术语英文释义
math.absAbsolute Value返回绝对值 math.abs(-5) → 5
math.acosArc Cosine返回反余弦值(弧度),math.acos(x)
math.asinArc Sine返回反正弦值(弧度),math.asin(x)
math.atanArc Tangent返回反正切值(弧度),math.atan(y, x) 返回 y/x 的反正切
math.ceilCeiling向上取整,math.ceil(3.2) → 4
math.cosCosine余弦函数(弧度),math.cos(math.pi)
math.degConvert to Degrees弧度转角度,math.deg(math.pi) → 180
math.expExponential返回 e 的 x 次方,math.exp(1) → 2.718…
math.floorFloor向下取整,math.floor(3.8) → 3
math.fmodFloat Modulo浮点数取模,math.fmod(10, 3) → 1
math.hugeInfinity无穷大常量,比任何数值都大
math.idivInteger Divide整数除法,math.idiv(10, 3) → 3
math.infInfinity正无穷常量
math.logNatural Logarithm自然对数,math.log(math.exp(2)) → 2
math.maxMaximum返回最大值,math.max(1, 5, 3) → 5
math.maxintegerMax Integer平台最大整数
math.minMinimum返回最小值,math.min(1, 5, 3) → 1
math.minintegerMin Integer平台最小整数
math.modfInteger Part返回整数和小数部分,math.modf(3.5) → 3, 0.5
math.piPi圆周率常量,约等于 3.1415926535898
math.radConvert to Radians角度转弧度,math.rad(180) → π
math.randomRandom Number生成伪随机数,无参数返回 [0,1),可指定范围 math.random(1, 100)
math.randomseedRandom Seed设置随机数种子,math.randomseed(os.time()) 确保每次运行不同
math.sinSine正弦函数(弧度),math.sin(math.pi/2) → 1
math.sqrtSquare Root平方根,math.sqrt(16) → 4
math.tanTangent正切函数(弧度),math.tan(math.pi/4) → 1
math.tointegerTo Integer转换为整数,math.tointeger("42") → 42,无效返回 nil
math.typeNumber Type返回 “integer” 或 “float”,math.type(42) → “integer”
math.ultUnsigned Less Than无符号整数比较,用于处理整数溢出情况

O

术语英文释义
os.clockCPU Time返回程序消耗的 CPU 时间(秒)
os.dateCurrent Date返回日期时间表或格式化字符串,os.date("*t") 返回年月日时分秒
os.difftimeTime Difference计算两个时间的差(秒),os.difftime(t2, t1)
os.executeExecute Command执行系统命令,返回退出状态
os.exitExit Program终止程序执行,可指定退出码 os.exit(0)
os.getenvGet Environment Variable获取环境变量值,os.getenv("PATH")
os.removeRemove File删除文件,os.remove("temp.txt")
os.renameRename File重命名文件,os.rename("old.txt", "new.txt")
os.setlocaleSet Locale设置程序区域,影响日期格式等
os.timeUnix Timestamp返回当前或指定时间的 Unix 时间戳(秒)
os.tmpnameTemporary Filename返回临时文件的文件名(需后续创建)

P

术语英文释义
package.configPackage Config包路径配置字符串,包含路径分隔符等信息
package.cpathC Library PathC 库搜索路径,用于 require 加载 C 模块
package.loadedLoaded Packages已加载模块表,存储 require 返回的模块对象
package.loadersModule Loaders模块加载器列表(Lua 5.1 兼容)
package.loadingPackage Loading正在加载的模块表,用于循环依赖检测
package.pathLua Module PathLua 模块搜索路径,require 用于查找 .lua 文件
package.preloadPreload Table预加载模块表,可手动注册模块加载函数
package.searchersModule Searchers模块搜索器列表(Lua 5.2+)
package.searchpathSearch Module Path在给定路径中搜索模块文件
pairsPairs Iterator遍历表的键值对迭代器,for k, v in pairs(t) do...end
pcallProtected Call受保护的函数调用,捕获错误不终止程序,pcall(func, ...)
ipairsIPairs Iterator遍历数组风格表的迭代器,按索引顺序遍历

R

术语英文释义
rawequalRaw Equal原始相等比较,不调用元方法,rawequal(a, b)
rawgetRaw Get原始表读取,不调用 __index 元方法
rawlenRaw Length原始长度获取,不调用 __len 元方法
rawsetRaw Set原始表写入,不调用 __newindex 元方法
requireRequire Module加载模块的函数,检查 package.loaded 缓存,支持自定义搜索器
selectSelect Argument获取可变参数,select("#", ...) 返回参数个数,select(i, ...) 返回第 i 个及之后参数

S

术语英文释义
setmetatableSet Metatable设置表的元表,返回该表
string.byteString to Byte返回字符的数值编码,string.byte("A") → 65
string.charByte to String数值编码转换为字符,string.char(65) → “A”
string.dumpDump Function将函数编译为二进制字符串(序列化)
string.findFind Substring查找子串,返回起始和结束位置,string.find("hello", "ll") → 3, 4
string.formatFormat String格式化字符串,类似 C 的 printfstring.format("%.2f", 3.1415)
string.gmatchGlobal Match返回匹配迭代器,for w in string.gmatch(text, "%w+") do...end
string.gsubGlobal Substitute全局替换,string.gsub(s, pattern, repl) 返回新字符串和替换次数
string.lenString Length返回字符串长度,string.len("hello") → 5
string.lowerTo Lowercase转换为小写,string.lower("HELLO") → “hello”
string.matchMatch Pattern返回第一个匹配,string.match("hello", "%a+") → “hello”
string.packPack Values将值打包为二进制字符串
string.packsizePack Size返回打包后的字节数
string.repRepeat String重复字符串,string.rep("ab", 3) → “ababab”
string.reverseReverse String反转字符串
string.subSubstring截取子串,string.sub("hello", 2, 4) → “ell”
string.unpackUnpack Values从二进制字符串解包值
string.upperTo Uppercase转换为大写,string.upper("hello") → “HELLO”

T

术语英文释义
table.concatConcatenate Table连接表元素为字符串,table.concat(t, ", ")
table.insertInsert Element在表指定位置插入元素,默认末尾插入
table.moveMove Elements移动表元素,table.move(a, f, e, t) 将 a[f..e] 移动到位置 t
table.packPack Arguments参数打包为表,table.pack(...) 返回n 字段
table.removeRemove Element删除表指定位置元素,默认删除末尾元素
table.sortSort Table排序元素table.sort(t, comp)提供比较函数
table.unpackUnpack Table解包表为table.unpack(t) 等同于 unpack(t)
tonumberTo Number转换为数tonumber("42") → 42,失败返回 nil
tostringTo String转换字符串调用 __tostring 元方法,无则返回类型描述
typeType of Value返回值类型的字符串"nil""number""string"

U

术语英文释义
unpackUnpack Table解包表为返回值(全局函数,已废弃,推荐 table.unpack

V

术语英文释义
varargVariable Arguments可变参数,使用 ... 表示,在函数内用 {...} 访问

X

术语英文释义
xpcallProtected Call with Handler错误处理器的受保护调用,xpcall(func, err_handler)
专注模式