目 录
第一篇 语言. 1
第 0 章 序言. 1
0.1 序言 1
0.2 Lua的使用者. 2
0.3 Lua的相关资源. 3
0.4 本书的体例 3
0.5 关于本书 3
0.6 感谢 4
第 1 章 起点. 5
1.1 Chunks . 5
1.2 全局变量 7
1.3 词法约定 7
1.4 命令行方式 7
第 2 章 类型和值. 9
2.1 Nil 9
2.2 Booleans 9
2.3 Numbers. 10
2.4 Strings 10
2.5 Functions . 12
2.6 Userdata and Threads 12
第 3 章 表达式. 13
3.1 算术运算符 13
3.2 关系运算符 13
3.3 逻辑运算符 13
3.4 连接运算符 14
3.5 优先级 15
3.6 表的构造. 15
第 4 章 基本语法. 18
4.1 赋值语句 18
4.2 局部变量与代码块(block). 19
4.3 控制结构语句 20
4.4 break和return语句. 23
第 5 章 函数. 24
5.1 多返回值 25
5.2 可变参数 27
5.3 命名参数 28
第 6 章 再论函数. 30
6.1 闭包 32
6.2 非全局函数 34
6.3 正确的尾调用(Proper Tail Calls). 36
第 7 章 迭代器与泛型for. 40
7.1 迭代器与闭包 40
7.2 范性for的语义 42
7.3 无状态的迭代器 43
7.4 多状态的迭代器 44
7.5 真正的迭代器 45
第 8 章 编译·运行·错误信息. 47
8.1 require函数 49
8.2 C Packages. 50
8.3 错误 51
8.4 异常和错误处理 52
8.5 错误信息和回跟踪(Tracebacks) 53
第 9 章 协同程序. 56
9.1 协同的基础 56
9.2 管道和过滤器 58
9.3 用作迭代器的协同 61
9.4 非抢占式多线程 63
第 10 章 完整示例. 68
10.1 Lua作为数据描述语言使用. 68
10.2 马尔可夫链算法 71
第二篇 tables与objects. 75
第 11 章 数据结构. 76
11.1 数组 76
11.2 矩阵和多维数组 77
11.3 链表 78
11.4 队列和双端队列 78
11.5 集合和包 80
11.6 字符串缓冲 80
第 12 章 数据文件与持久化. 84
12.1 序列化 86
第 13 章 Metatables and Metamethods 92
13.1 算术运算的Metamethods. 92
13.2 关系运算的Metamethods. 95
13.3 库定义的Metamethods. 96
13.4 表相关的Metamethods. 97
第 14 章 环境. 103
14.1 使用动态名字访问全局变量 103
14.2 声明全局变量. 104
14.3 非全局的环境 106
第 15 章 Packages 109
15.1 基本方法 109
15.2 私有成员(Privacy).111
15.3 包与文件.112
15.4 使用全局表.113
15.5 其他一些技巧(Other Facilities).115
第 16 章 面向对象程序设计118
16.1 类.119
16.2 继承 121
16.3 多重继承 122
16.4 私有性(privacy) 125
16.5 Single-Method的对象实现方法. 127
第 17 章 Weak表 128
17.1 记忆函数 130
17.2 关联对象属性 131
17.3 重述带有默认值的表 132
第三篇 标准库. 134
第 18 章 数学库. 135
第 19 章 Table库 136
19.1 数组大小. 136
19.2 插入/删除. 137
19.3 排序 137
第 20 章 String库. 140
20.1 模式匹配函数 141
20.2 模式 143
20.3 捕获(Captures) 146
20.4 转换的技巧(Tricks of the Trade) 151
第 21 章 IO库. 157
21.1 简单I/O模式. 157
21.2 完全I/O 模式. 160
第 22 章 操作系统库. 165
22.1 Date和Time . 165
22.2 其它的系统调用 167
第 23 章 Debug库. 169
23.1 自省(Introspective). 169
23.2 Hooks. 173
23.3 Profiles. 174
第四篇 C API . 177
第 24 章 C API纵览. 178
24.1 第一个示例程序 179
24.2 堆栈 181
24.3 C API的错误处理. 186
第 25 章 扩展你的程序. 188
25.1 表操作 189
25.2 调用Lua函数 193
25.3 通用的函数调用 195
第 26 章 调用C函数. 198
第一篇 语言. 1
第 0 章 序言. 1
0.1 序言 1
0.2 Lua的使用者. 2
0.3 Lua的相关资源. 3
0.4 本书的体例 3
0.5 关于本书 3
0.6 感谢 4
第 1 章 起点. 5
1.1 Chunks . 5
1.2 全局变量 7
1.3 词法约定 7
1.4 命令行方式 7
第 2 章 类型和值. 9
2.1 Nil 9
2.2 Booleans 9
2.3 Numbers. 10
2.4 Strings 10
2.5 Functions . 12
2.6 Userdata and Threads 12
第 3 章 表达式. 13
3.1 算术运算符 13
3.2 关系运算符 13
3.3 逻辑运算符 13
3.4 连接运算符 14
3.5 优先级 15
3.6 表的构造. 15
第 4 章 基本语法. 18
4.1 赋值语句 18
4.2 局部变量与代码块(block). 19
4.3 控制结构语句 20
4.4 break和return语句. 23
第 5 章 函数. 24
5.1 多返回值 25
5.2 可变参数 27
5.3 命名参数 28
第 6 章 再论函数. 30
6.1 闭包 32
6.2 非全局函数 34
6.3 正确的尾调用(Proper Tail Calls). 36
第 7 章 迭代器与泛型for. 40
7.1 迭代器与闭包 40
7.2 范性for的语义 42
7.3 无状态的迭代器 43
7.4 多状态的迭代器 44
7.5 真正的迭代器 45
第 8 章 编译·运行·错误信息. 47
8.1 require函数 49
8.2 C Packages. 50
8.3 错误 51
8.4 异常和错误处理 52
8.5 错误信息和回跟踪(Tracebacks) 53
第 9 章 协同程序. 56
9.1 协同的基础 56
9.2 管道和过滤器 58
9.3 用作迭代器的协同 61
9.4 非抢占式多线程 63
第 10 章 完整示例. 68
10.1 Lua作为数据描述语言使用. 68
10.2 马尔可夫链算法 71
第二篇 tables与objects. 75
第 11 章 数据结构. 76
11.1 数组 76
11.2 矩阵和多维数组 77
11.3 链表 78
11.4 队列和双端队列 78
11.5 集合和包 80
11.6 字符串缓冲 80
第 12 章 数据文件与持久化. 84
12.1 序列化 86
第 13 章 Metatables and Metamethods 92
13.1 算术运算的Metamethods. 92
13.2 关系运算的Metamethods. 95
13.3 库定义的Metamethods. 96
13.4 表相关的Metamethods. 97
第 14 章 环境. 103
14.1 使用动态名字访问全局变量 103
14.2 声明全局变量. 104
14.3 非全局的环境 106
第 15 章 Packages 109
15.1 基本方法 109
15.2 私有成员(Privacy).111
15.3 包与文件.112
15.4 使用全局表.113
15.5 其他一些技巧(Other Facilities).115
第 16 章 面向对象程序设计118
16.1 类.119
16.2 继承 121
16.3 多重继承 122
16.4 私有性(privacy) 125
16.5 Single-Method的对象实现方法. 127
第 17 章 Weak表 128
17.1 记忆函数 130
17.2 关联对象属性 131
17.3 重述带有默认值的表 132
第三篇 标准库. 134
第 18 章 数学库. 135
第 19 章 Table库 136
19.1 数组大小. 136
19.2 插入/删除. 137
19.3 排序 137
第 20 章 String库. 140
20.1 模式匹配函数 141
20.2 模式 143
20.3 捕获(Captures) 146
20.4 转换的技巧(Tricks of the Trade) 151
第 21 章 IO库. 157
21.1 简单I/O模式. 157
21.2 完全I/O 模式. 160
第 22 章 操作系统库. 165
22.1 Date和Time . 165
22.2 其它的系统调用 167
第 23 章 Debug库. 169
23.1 自省(Introspective). 169
23.2 Hooks. 173
23.3 Profiles. 174
第四篇 C API . 177
第 24 章 C API纵览. 178
24.1 第一个示例程序 179
24.2 堆栈 181
24.3 C API的错误处理. 186
第 25 章 扩展你的程序. 188
25.1 表操作 189
25.2 调用Lua函数 193
25.3 通用的函数调用 195
第 26 章 调用C函数. 198