为你推荐
书名页
内容简介
版权页
推荐序一
推荐序二
译者序
前言
读者服务
第1部分 语言基础
1 Lua语言入门
1.1 程序段
1.2 一些词法规范
1.3 全局变量
1.4 类型和值
1.4.1 nil
1.4.2 Boolean
1.5 独立解释器
1.6 练习
2 小插曲:八皇后问题
2.1 练习
3 数值
3.1 数值常量
3.2 算术运算
3.3 关系运算
3.4 数学库
3.4.1 随机数发生器
3.4.2 取整函数
3.5 表示范围
3.6 惯例
3.7 运算符优先级
3.8 兼容性
3.9 练习
4 字符串
4.1 字符串常量
4.2 长字符串/多行字符串
4.3 强制类型转换
4.4 字符串标准库
4.5 Unicode编码
4.6 练习
5 表
5.1 表索引
5.2 表构造器
5.3 数组、列表和序列
5.4 遍历表
5.5 安全访问
5.6 表标准库
5.7 练习
6 函数
6.1 多返回值
6.2 可变长参数函数
6.3 函数table.unpack
6.4 正确的尾调用
6.5 练习
7 输入输出
7.1 简单I/O模型
7.2 完整I/O模型
7.3 其他文件操作
7.4 其他系统调用
7.4.1 运行系统命令
7.5 练习
8 补充知识
8.1 局部变量和代码块
8.2 控制结构
8.2.1 if then else
8.2.2 while
8.2.3 repeat
8.2.4 数值型for
8.2.5 泛型for
8.3 break、return和goto
8.4 练习
第2部分 编程实操
9 闭包
9.1 函数是第一类值
9.2 非全局函数
9.3 词法定界
9.4 小试函数式编程
9.5 练习
10 模式匹配
10.1 模式匹配的相关函数
10.1.1 函数string.find
10.1.2 函数string.match
10.1.3 函数string.gsub
10.1.4 函数string.gmatch
10.2 模式
10.3 捕获
10.4 替换
10.4.1 URL编码
10.4.2 制表符展开
10.5 诀窍
10.6 练习
11 小插曲:出现频率最高的单词
11.1 练习
12 日期和时间
12.1 函数os.time
12.2 函数os.date
12.3 日期和时间处理
12.4 练习
13 位和字节
13.1 位运算
13.2 无符号整型数
13.3 打包和解包二进制数据
13.4 二进制文件
13.5 练习
14 数据结构
14.1 数组
14.2 矩阵及多维数组
14.3 链表
14.4 队列及双端队列
14.5 反向表
14.6 集合与包
14.7 字符串缓冲区
14.8 图形
14.9 练习
15 数据文件和序列化
15.1 数据文件
15.2 序列化
15.2.1 保存不带循环的表
15.2.2 保存带有循环的表
15.3 练习
16 编译、执行和错误
16.1 编译
16.2 预编译的代码
16.3 错误
16.4 错误处理和异常
16.5 错误信息和栈回溯
16.6 练习
17 模块和包
17.1 函数require
17.1.1 模块重命名
17.1.2 搜索路径
17.1.3 搜索器
17.2 Lua语言中编写模块的基本方法
17.3 子模块和包
17.4 练习
第3部分 语言特性
18 迭代器和泛型for
18.1 迭代器和闭包
18.2 泛型for的语法
18.3 无状态迭代器
18.4 按顺序遍历表
18.5 迭代器的真实含义
18.6 练习
19 小插曲:马尔可夫链算法
19.1 练习
20 元表和元方法
20.1 算术运算相关的元方法
20.2 关系运算相关的元方法
20.3 库定义相关的元方法
20.4 表相关的元方法
20.4.1 __index元方法
20.4.2 __newindex元方法
20.4.3 具有默认值的表
20.4.4 跟踪对表的访问
20.4.5 只读的表
20.5 练习
21 面向对象(Object-Oriented)编程
21.1 类(Class)
21.2 继承(Inheritance)
21.3 多重继承(Multiple Inheritance)
21.4 私有性(Privacy)
21.5 单方法对象(Single-method Object)
21.6 对偶表示(Dual Representation)
21.7 练习
22 环境(Environment)
22.1 具有动态名称的全局变量
22.2 全局变量的声明
22.3 非全局环境
22.4 使用_ENV
22.5 环境和模块
22.6 _ENV和load
22.7 练习
23 垃圾收集
23.1 弱引用表
23.2 记忆函数(Memorize Function)
23.3 对象属性(Object Attribute)
23.4 回顾具有默认值的表
23.5 瞬表(Ephemeron Table)
23.6 析构器(Finalizer)
23.7 垃圾收集器
23.8 控制垃圾收集的步长(Pace)
23.9 练习
24 协程(Coroutine)
24.1 协程基础
24.2 哪个协程占据主循环
24.3 将协程用作迭代器
24.4 事件驱动式编程
24.5 练习
25 反射(Re fl ection)
25.1 自省机制(Introspective Facility)
25.1.1 访问局部变量
25.1.2 访问非局部变量
25.1.3 访问其他协程
25.2 钩子(Hook)
25.3 调优(Profile)
25.4 沙盒(Sandbox)
25.5 练习
26 小插曲:使用协程实现多线程
26.1 练习
第4部分 C语言API
27 C语言API总览
27.1 第一个示例
27.2 栈
27.2.1 压入元素
27.2.2 查询元素
27.2.3 其他栈操作
27.3 使用CAPI进行错误处理
27.3.1 处理应用代码中的错误
27.3.2 处理库代码中的错误
27.4 内存分配
27.5 练习
28 扩展应用
28.1 基础知识
28.2 操作表
28.2.1 一些简便方法
28.3 调用Lua函数
28.4 一个通用的调用函数
28.5 练习
29 在Lua中调用C语言
29.1 C函数
29.2 延续(Continuation)
29.3 C模块
29.4 练习
30 编写C函数的技巧
30.1 数组操作
30.2 字符串操作
30.3 在C函数中保存状态
30.3.1 注册表
30.3.2 上值
30.3.3 共享的上值(Shared upvalue)
30.4 练习
31 C语言中的用户自定义类型
31.1 用户数据(Userdata)
31.2 元表(Metatable)
31.3 面向对象访问
31.4 数组访问
31.5 轻量级用户数据
31.6 练习
32 管理资源
32.1 目录迭代器
32.2 XML解析器
32.3 练习
33 线程和状态
33.1 多线程
33.2 Lua状态
33.3 练习
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜