我无法直接提供完整的《Lua 5.3 参考手册》全文,因为它是受版权保护的官方文档。不过,我可以为您整理 Lua 5.3 的核心内容概要,并提供关键部分的中文翻译和解释,结合代码示例,帮助您快速掌握其特性。如果您需要特定章节的详细内容,可以告诉我,我会深入讲解。
以下是基于《Lua 5.3 参考手册》的结构化总结:
目录
Lua 5.3 简介
Lua 5.3 是 Lua 编程语言的一个主要版本,于 2015 年 1 月发布。它在 Lua 5.2 的基础上引入了整数类型支持、位运算符等新特性,同时优化了垃圾回收和标准库。《Lua 5.3 参考手册》是官方文档,详细描述了语法、语义和 API。
基本概念
- 动态类型:8 种基本类型(nil、boolean、number、string、table、function、userdata、thread)。
- number 类型:分为整数 (integer) 和浮点数 (float),默认 64 位。
- 表 (table):核心数据结构,支持数组和字典。
- 元表 (metatable):自定义表行为。
- 协同程序 (coroutine):轻量线程机制。
语言特性
变量与作用域
- 全局变量默认,
local
声明局部变量。 - 支持多重赋值:
a, b = 1, 2
。
运算符
- 算术:
+
,-
,*
,/
,//
(整除)、%
,^
。 - 位运算(新增):
&
(与)、|
(或)、~
(异或)、>>
(右移)、<<
(左移)、~
(取反)。 - 关系:
<
,>
,<=
,>=
,==
,~=
. - 逻辑:
and
,or
,not
。 - 其他:
..
(连接)、#
(长度)。
控制结构
if-then-else
。while
、for
(数值和泛型)、repeat-until
。break
和goto
。
函数
- 支持多返回值:
return a, b
。 - 闭包:函数可捕获外部局部变量。
标准库
基本库
print
,type
,tostring
,tonumber
。assert
,error
,pcall
,xpcall
。
数学库
math.sin
,math.cos
,math.floor
,math.ceil
。- 新增:
math.tointeger
(转换为整数)。
字符串库
string.format
,string.sub
,string.gsub
,string.match
。
表库
table.insert
,table.remove
,table.concat
,table.sort
。
I/O 库
io.open
,io.read
,io.write
,io.lines
。
协同程序库
coroutine.create
,coroutine.resume
,coroutine.yield
。
调试库
debug.traceback
,debug.getlocal
,debug.sethook
。
位运算库(新增)
bit32.band
,bit32.bor
,bit32.bxor
,bit32.lshift
,bit32.rshift
,bit32.bnot
。
代码示例
整数与位运算
local a = 10 -- 整数
local b = 3.5 -- 浮点数
print(a // 3) -- 整除,结果 3
print(type(math.tointeger(b))) -- nil(非整数)
-- 位运算
print(5 & 3) -- 与,结果 1 (0101 & 0011 = 0001)
print(5 | 3) -- 或,结果 7 (0101 | 0011 = 0111)
print(~5) -- 取反,结果 -6 (按 32 位补码)
运行结果:
3
nil
1
7
-6
表与元表
local t = {}
local mt = {
__index = function(_, key) return "未知: " .. key end
}
setmetatable(t, mt)
print(t.name) -- "未知: name"
运行结果:
未知: name
协同程序
local co = coroutine.create(function()
for i = 1, 3 do
print("步骤 " .. i)
coroutine.yield()
end
end)
coroutine.resume(co) -- 步骤 1
coroutine.resume(co) -- 步骤 2
coroutine.resume(co) -- 步骤 3
运行结果:
步骤 1
步骤 2
步骤 3
与 Lua 5.2 的主要变化
- 整数子类型:
number
分化为整数和浮点数。- 新增
//
整除运算符。
- 位运算:
- 原生支持
&
,|
,~
,>>
,<<
,替代bit32
库。
- UTF-8 支持:
string
库新增 UTF-8 操作(需加载utf8
库)。
- 垃圾回收改进:
- 更高效的增量回收。
- 数学函数:
- 新增
math.tointeger
。
参考资料与获取手册
- 官方手册:
- 英文版:Lua 5.3 Reference Manual
- 中文翻译(非官方):社区翻译版本可在 CSDN 或 Lua 中文论坛找到。
- 获取方式:
- 在线阅读:访问 Lua 官网。
- 下载 PDF:从 Lua.org 获取。
- 补充资源:
- 菜鸟教程 – Lua 教程(中文)
- Lua Users Wiki(英文)
如果您需要《Lua 5.3 参考手册》中某一节的详细内容(如具体语法规则或 C API),请告诉我,我会为您提供更深入的解释和示例!
发表回复