上传者: jsntghf
|
上传时间: 2023-01-12 14:03:43
|
文件大小: 16.65MB
|
文件类型: PDF
第1部分
第1章 开始
1.1 程序块(chunk)
1.2 词法规范
1.3 全局变量
1.4 解释器程序(the dtand-slone interpreter)
第2章 类型与值
2.1 nil(空)
2.2 boolean(布尔)
2.3 number(数字)
2.4 string(字符串)
2.5 table(表)
2.6 function(函数)
2.7 userdata(自定义类型)和thread(线程)
第3章 表达式
3.1 算术操作符
3.2 关系操作符
3.3 逻辑操作符
3.4 字符串连接
3.5 优先级
3.6 table构造式(table constructor)
第4章 语句
4.1 赋值
4.2 局部变量与块(block)
4.3 控制结构
4.3.1 if then else
4.3.2 while
4.3.3 repeat
4.3.4 数字型for(numeric for)
4.3.5 泛型for(generic for)
4.4 break与return
第5章 函数
5.1 多重返回值(multiple results)
5.2 变长参数(variable number of arguments)
5.3 具名实参(named arguments)
第6章 深入函数
6.1 closure(闭合函数)
6.2 非全局的函数(non-global function)
6.3 正确的尾调用(proper tail call)
第7章 迭代器与泛型for
7.1 迭代器与closure
7.2 泛型for的语义
7.3 无状态的迭代器
7.4 具有复杂状态的迭代器
7.5 真正的迭代器
第8章 编译、执行与错误
8.1 编译
8.2 C代码
8.3 错误(error)
8.4 错误处理与异常
8.5 错误消息与追溯(traceback)
第9章 协同程序(coroutine)
9.1 协同程序基础
9.2 管道(pipe)与过滤器(filter)
9.3 以协同程序实现迭代器
9.4 非抢先式的(non-preemptive)多线程
第10章 完整的示例
10.1 数据描述
10.2 马尔可夫链(markov chain)算法
第2部分
第11章 数据结构
11.1 数组
11.2 矩阵与多维数组
11.3 链表
11.4 队列与双向队列
11.5 集合与无序组(bag)
11.6 字符串缓冲
11.7 图
第12章 数据文件与持久性
12.1 数据文件
12.2 串行化(Serialization)
12.2.1 保存无环的table
12.2.2 保存有环的table
第13章 元表(metatable)与元方法(meatmethod)
13.1 算术类的元方法
13.2 关系类的元方法
13.3 库定义的元方法
13.4 table访问的元方法
13.4.1 _ _index元方法
13.4.2 _ _newindex元方法
13.4.3 具有默认值的table
13.4.4 跟踪table的访问
13.4.5 只读的table
第14章 环境
14.1 具有动态名字的全局变量
14.2 全局变量声明
14.3 非全局的环境
第15章 模块与包
15.1 require函数
15.2 编写模块的基本方法
15.3 使用环境
15.4 module函数
15.5 子模块与包
第16章 面向对象编程
16.1 类
16.2 继承
16.3 多重继承
16.4 私密性
16.5 单一方法(single-method)做法
第17章 弱引用table
17.1 备忘录(memoize)函数
17.2 对象属性
17.3 回顾table的默认值
第3部分
第18章 数学库
第19章 table库
19.1 插入和删除
19.2 排序
19.3 连接
第20章 字符串库
20.1 基础字符串函数
20.2 模式匹配(pattern-matching)函数
20.2.1 string.find函数
20.2.2 string.match函数
20.2.3 string.gsub函数
20.2.4 string.gmatch函数
20.3 模式
20.4 捕获(capture)
20.5 替换
20.5.1 URL编码
20.5.2 tab扩展
20.6 技巧
第21章 I/O库
21.1 简单I/O模型
21.2 完整I/O模型
21.2.1 性能小诀窍
21.2.2 二进制文件
21.2.3 其他文件操作
第22章 操作系统库
22.1 日期和时间
22.2 其他系统调用
第23章 调试库
23.1 自省机制
23.1.1 访问局部变量
23.1.2 访问非局部的变量(non-local varible)
23.1.3 访问其他协同程序
23.2 钩子
23.3 性能剖析(profile)
第4部分
第24章 C API概述
24.1 第一个示例
24.2 栈
24.2.1 压入元素
24.2.2 查询元素
24.2.3 其他栈操作
24.3 C API中的错误处理
24.3.1 应用程序代码中的错误处理
24.3.2 库代码中的错误处理
第25章 扩展应用程序
25.1 基础
25.2 table操作
25.3 调用Lua函数
25.4 一个通用的调用函数
第26章 从Lua调用C
26.1 C函数
26.2 C模块
第27章 编写C函数的技术
27.1 数组操作
27.2 字符串操作
27.3 在C函数中保存状态
27.3.1 注册表(registry)
27.3.2 C函数的环境
27.3.3 upvalue
第28章 用户自定义类型
28.1 userdata
28.2 元表
28.3 面向对象的访问
28.4 数组访问
28.5 轻量级userdata(light userdata)
第29章 管理资源
29.1 目录迭代器
29.2 XML分析器
第30章 线程和状态
30.1 多个线程
30.2 Lua状态
第31章 内存管理
31.1 分配函数
31.2 垃圾收集器
31.2.1 原子操作
31.2.2 垃圾收集器的A