由于此商品库存有限,请在下单后15分钟之内支付完成,手慢无哦!
100%刮中券,最高50元无敌券,券有效期7天
活动自2017年6月2日上线,敬请关注云钻刮券活动规则更新。
如活动受政府机关指令需要停止举办的,或活动遭受严重网络攻击需暂停举办的,或者系统故障导致的其它意外问题,苏宁无需为此承担赔偿或者进行补偿。
[正版]Lua程序设计第4版第四版 Lua5.3编程语言基础入门 Lua编程程序设计实现 Lua编程方法技巧整型位运算瞬
¥ ×1
店铺公告
本店存在书、古旧书、收藏书、二手书等特殊商品,因受采购成本限制,可能高于定价销售,明码标价,介意者勿拍!
1.书籍因稀缺可能导致售价高于定价,图书实际定价参见下方详情内基本信息,请买家看清楚且明确后再拍,避免价格争议!
2.店铺无纸质均开具电子,请联系客服开具电子版
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
产品展示 |
基本信息 |
图书名称: | Lua程序设计 |
作 者: | 罗伯拖·鲁萨利姆斯奇 |
定价: | 89.00 |
ISBN号: | 9787121338045 |
出版社: | 电子工业出版社 |
开本: | 16 |
装帧: | 平装 |
出版日期: | 2018-7-1 |
印刷日期: | 2018-7-1 |
编辑推荐 |
适读人群 :所有业务涉及Lua的程序员。 本书由Lua语言作者亲自撰写,针对Lua语言本身由浅入深地从各个方面进行了完整和细致的讲解。所有与Lua语言打交道的人均能从本书受益。 |
内容介绍 |
本书由 Lua 语言作者亲自撰写,针对 Lua 语言本身由浅入深地从各个方面进行了完整和细致的讲解。作为第 4 版,本书主要针对的是 Lua 5.3,这是本书撰写时 Lua 语言的*新版本。作者从语言使用者的角度出发,讲解了语言基础、编程实操、高级特性及 C 语言 API 等四个方面的内容,既有 Lua 语言基本数据类型、输入输出、控制结构等基础知识,也有对模块、闭包、元表、协程、延续、反射、环境、垃圾回收、函数式编程、面向对象编程、C 语言 API 等高级特性的系统讲解,还有对 Lua 5.3 中引入的整型、位运算、瞬表、延续等新功能的细致说明。 |
作者介绍 |
Roberto Ierusalimschy是Lua语言的首席架构师,从1993年Lua语言诞生起即进行Lua语言的开发工作,目前是巴西PUC-Rio(the Pontifical Catholic University of Rio de Janeiro)大学计算机科学专业的一名助理教授,主要从事编程语言的设计和实现工作。 梅隆魁,2013.4至今就职于中国民生银行总行信息科技部,擅长于Java企业级开发、嵌入式系统/软硬件、安卓逆向等方向,同时,对新技术也一直保有热情。 |
目录 |
第 1 部分 语言基础 1 1 Lua 语言入门 2 1.1 程序段 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 一些词法规范 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.3 全局变量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.4 类型和值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.4.1 nil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.4.2 Boolean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.5 独立解释器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.6 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2 小插曲:八皇后问题 13 2.1 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3 数值 17 3.1 数值常量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.2 算术运算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.3 关系运算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.4 数学库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.4.1 随机数发生器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.4.2 取整函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.5 表示范围 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.6 惯例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.7 运算符优先级 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.8 兼容性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.9 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4 字符串 30 4.1 字符串常量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.2 长字符串/多行字符串 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.3 强制类型转换 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.4 字符串标准库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 4.5 Unicode 编码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.6 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 5 表 43 5.1 表索引 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 5.2 表构造器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 5.3 数组、列表和序列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 5.4 遍历表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 5.5 AQ访问 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 5.6 表标准库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 5.7 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 6 函数 56 6.1 多返回值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 6.2 可变长参数函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 6.3 函数 table.unpack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 6.4 正确的尾调用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 6.5 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 7 输入输出 68 7.1 简单 I/O 模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 7.2 完整 I/O 模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 7.3 其他文件操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 7.4 其他系统调用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 7.4.1 运行系统命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 7.5 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 8 补充知识 78 8.1 局部变量和代码块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 8.2 控制结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 8.2.1 if then else . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 8.2.2 while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 8.2.3 repeat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 8.2.4 数值型 for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 8.2.5 泛型 for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 8.3 break、return 和 goto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 8.4 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 第 2 部分 编程实操 90 9 闭包 91 9.1 函数是DY类值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 9.2 非全局函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 9.3 词法定界 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 9.4 小试函数式编程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 9.5 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 10 模式匹配 105 10.1 模式匹配的相关函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 10.1.1 函数 string.find . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 10.1.2 函数 string.match . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 10.1.3 函数 string.gsub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 10.1.4 函数 string.gmatch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 10.2 模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 10.3 捕获 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 10.4 替换 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 10.4.1 URL 编码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 10.4.2 制表符展开 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 10.5 诀窍 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 10.6 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 11 小插曲:出现频率ZG的单词 124 11.1 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 12 日期和时间 128 12.1 函数 os.time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 12.2 函数 os.date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 12.3 日期和时间处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 12.4 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 13 位和字节 135 13.1 位运算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 13.2 无符号整型数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 13.3 打包和解包二进制数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 13.4 二进制文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 13.5 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 14 数据结构 145 14.1 数组 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 14.2 矩阵及多维数组 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 14.3 链表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 14.4 队列及双端队列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 14.5 反向表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 14.6 集合与包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 14.7 字符串缓冲区 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 14.8 图形 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 14.9 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 15 数据文件和序列化 159 15.1 数据文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 15.2 序列化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 15.2.1 保存不带循环的表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 15.2.2 保存带有循环的表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 15.3 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 16 编译、执行和错误 171 16.1 编译 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 16.2 预编译的代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 16.3 错误 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 16.4 错误处理和异常 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 16.5 错误信息和栈回溯 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 16.6 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 17 模块和包 184 17.1 函数 require . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 17.1.1 模块重命名 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 17.1.2 搜索路径 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 17.1.3 搜索器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 17.2 Lua 语言中编写模块的基本方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 17.3 子模块和包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 17.4 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 第 3 部分 语言特性 196 18 迭代器和泛型 for 197 18.1 迭代器和闭包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 18.2 泛型 for 的语法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 18.3 无状态迭代器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 18.4 按顺序遍历表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 18.5 迭代器的真实含义 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 18.6 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 19 小插曲:马尔可夫链算法 208 19.1 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 20 元表和元方法 212 20.1 算术运算相关的元方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 20.2 关系运算相关的元方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 20.3 库定义相关的元方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 20.4 表相关的元方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 20.4.1 __index 元方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 20.4.2 __newindex 元方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 20.4.3 具有默认值的表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 20.4.4 跟踪对表的访问 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 20.4.5 只读的表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 20.5 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 21 面向对象(Object-Oriented)编程 226 21.1 类(Class) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 21.2 继承(Inheritance) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 21.3 多重继承(Multiple Inheritance) . . . . . . . . . . . . . . . . . . . . . . . . . . 232 21.4 私有性(Privacy) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 21.5 单方法对象(Single-method Object) . . . . . . . . . . . . . . . . . . . . . . . . 237 21.6 对偶表示(Dual Representation) . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 21.7 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 22 环境(Environment) 241 22.1 具有动态名称的全局变量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 22.2 全局变量的声明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 22.3 非全局环境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 22.4 使用 _ENV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 22.5 环境和模块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 22.6 _ENV 和 load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 22.7 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 23 垃圾收集 255 23.1 弱引用表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 23.2 记忆函数(Memorize Function) . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 23.3 对象属性(Object Attribute) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 23.4 回顾具有默认值的表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 23.5 瞬表(Ephemeron Table) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 23.6 析构器(Finalizer) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 23.7 垃圾收集器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 23.8 控制垃圾收集的步长(Pace) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 23.9 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 24 协程(Coroutine) 270 24.1 协程基础 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 24.2 哪个协程占据主循环 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 24.3 将协程用作迭代器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 24.4 事件驱动式编程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 24.5 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 25 反射(Reflection) 285 25.1 自省机制(Introspective Facility) . . . . . . . . . . . . . . . . . . . . . . . . . . 286 25.1.1 访问局部变量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288 25.1.2 访问非局部变量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 25.1.3 访问其他协程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 25.2 钩子(Hook) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 25.3 调优(Profile) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 25.4 沙盒(Sandbox) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296 25.5 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 26 小插曲:使用协程实现多线程 301 26.1 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 第 4 部分 C 语言 API 307 27 C 语言 API 总览 308 27.1 DY个示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 27.2 栈 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 27.2.1 压入元素 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 27.2.2 查询元素 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 27.2.3 其他栈操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 27.3 使用 C API 进行错误处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 27.3.1 处理应用代码中的错误 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 27.3.2 处理库代码中的错误 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321 27.4 内存分配 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 27.5 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 28 扩展应用 325 28.1 基础知识 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 28.2 操作表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 28.2.1 一些简便方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 28.3 调用 Lua 函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 28.4 一个通用的调用函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334 28.5 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338 29 在 Lua 中调用 C 语言 339 29.1 C 函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 29.2 延续(Continuation) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342 29.3 C 模块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345 29.4 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 30 编写 C 函数的技巧 349 30.1 数组操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349 30.2 字符串操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351 30.3 在 C 函数中保存状态 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 30.3.1 注册表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 30.3.2 上值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358 30.3.3 共享的上值(Shared upvalue) . . . . . . . . . . . . . . . . . . . . . . . . 361 30.4 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362 31 C 语言中的用户自定义类型 363 31.1 用户数据(Userdata) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364 31.2 元表(Metatable) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367 31.3 面向对象访问 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370 31.4 数组访问 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 31.5 轻量级用户数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 31.6 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 32 管理资源 376 32.1 目录迭代器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376 32.2 XML 解析器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380 32.3 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390 33 线程和状态 392 33.1 多线程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392 33.2 Lua 状态 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397 33.3 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406 |
在线试读部分章节 |
...................
|
|
亲,大宗购物请点击企业用户渠道>小苏的服务会更贴心!
亲,很抱歉,您购买的宝贝销售异常火爆让小苏措手不及,请稍后再试~
非常抱歉,您前期未参加预订活动,
无法支付尾款哦!
抱歉,您暂无任性付资格