注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络软件与程序设计其他编程语言/工具Lua程序设计:第2版

Lua程序设计:第2版

Lua程序设计:第2版

定 价:¥39.00

作 者: (巴西)莱鲁萨利姆斯奇(Ierusalimschy,R.)
出版社: 电子工业出版社
丛编项:
标 签: 网络编程

购买这本书可以去


ISBN: 9787121061875 出版时间: 2008-05-01 包装: 平装
开本: 787×980 1/16 页数: 281 pages 字数:  

内容简介

  本书是《Lua程序设计》(第1版)的更新和扩展,在第1版的基础上进行了较大的改进,并且加入了很多新的知识点。介绍了Lua语言所具有的功能,并使用大量示例来演示如何将它们运用到实际的任务中深入地介绍了Lua中唯一的数据结构——table,还讨论了数据结构、持久化、包和面向对象编程展示了Lua的标准库,对那些想将Lua作为一门独立语言来使用的开发者特别有用,每一章介绍一个库,包括数学库、table库、字符串库、I/O库、操作系统库、调试库介绍Lua与C语言之间的API,这是为那些想用C语言来访问Lua功能的人准备的作者简介:作者感言:最近几年Lua编程语言发展迅速,已从原来的强项——游戏领域,扩展到了其他的应用领域,例如Adobe Photoshop Lightroom,我很高兴本书能对这些发展作出贡献。本书不同语言的翻译版不仅会帮助到中国Lua社区的广大爱好者,更有助于Lua在世界范围内的发展。我很遗憾无法读懂本书的中文版,但对于幸运的中国读者来说,我希望你们能拥有一次美妙的阅读体验。关于译者:周惟迪 (www.zhouweidi.name),在少年时由于喜好计算机游戏而喜爱上计算机编程,对各类开发技术皆有涉猎。曾从事过2年游戏程序设计专业的教育工作,之后在上海Ubisoft工作,参与Splinter Cell 4(Xbox 360)、Rayman 4(Xbox 360)等项目开发。现就职于Epic Games China,从事MMO引擎,以及基于Unreal 3的MMO游戏开发。常在业余时间参与各种软件的开发,同时翻译过《Direct3D游戏编程入门教程》一书。

作者简介

  周惟迪,在少年时由于喜好计算机游戏而喜爱上计算机编程,对各类开发技术皆有涉猎。曾从事过2年游戏程序设计专业的教育工作,之后在上海Ubisoff工作,参与Splinter Cell 4(Xbox 360)、Rayman 4(Xbox 360)等项目开发。现就职于Epic GamesChina,从事MMO引擎,以及基于Unreal 3的MMO游戏开发。常在业余时间参与各种软件的开发,同时翻译过《Direct3D游戏编程入门教程》一书。译者简介:周惟迪,在少年时由于喜好计算机游戏而喜爱上计算机编程,对各类开发技术皆有涉猎。曾从事过2年游戏程序设计专业的教育工作,之后在上海Ubisoff工作,参与Splinter Cell 4(Xbox 360)、Rayman 4(Xbox 360)等项目开发。现就职于Epic GamesChina,从事MMO引擎,以及基于Unreal 3的MMO游戏开发。常在业余时间参与各种软件的开发,同时翻译过《Direct3D游戏编程入门教程》一书。

图书目录

第1部分
第1章  开始    3
1.1  程序块(chunk)    3
1.2  词法规范    5
1.3  全局变量    6
1.4  解释器程序(the dtand-slone interpreter)    7
第2章  类型与值    9
2.1  nil(空)    10
2.2  boolean(布尔)    10
2.3  number(数字)    10
2.4  string(字符串)    11
2.5  table(表)    14
2.6  function(函数)    17
2.7  userdata(自定义类型)和thread(线程)    18
第3章  表达式    19
3.1  算术操作符    19
3.2  关系操作符    20
3.3  逻辑操作符    20
3.4  字符串连接    22
3.5  优先级    22
3.6  table构造式(table constructor)    23
第4章  语句    27
4.1  赋值    27
4.2  局部变量与块(block)    28
4.3  控制结构    30
4.3.1  if then else    30
4.3.2  while    31
4.3.3  repeat    31
4.3.4  数字型for(numeric for)    31
4.3.5  泛型for(generic for)    32
4.4  break与return    34
第5章  函数    35
5.1  多重返回值(multiple results)    36
5.2  变长参数(variable number of arguments)    39
5.3  具名实参(named arguments)    42
第6章  深入函数    45
6.1  closure(闭合函数)    47
6.2  非全局的函数(non-global function)    50
6.3  正确的尾调用(proper tail call)    52
第7章  迭代器与泛型for    55
7.1  迭代器与closure    55
7.2  泛型for的语义    57
7.3  无状态的迭代器    58
7.4  具有复杂状态的迭代器    60
7.5  真正的迭代器    61
第8章  编译、执行与错误    63
8.1  编译    63
8.2  C代码    66
8.3  错误(error)    67
8.4  错误处理与异常    69
8.5  错误消息与追溯(traceback)    70
第9章  协同程序(coroutine)    73
9.1  协同程序基础    73
9.2  管道(pipe)与过滤器(filter)    76
9.3  以协同程序实现迭代器    78
9.4  非抢先式的(non-preemptive)多线程    81
第10章  完整的示例    87
10.1  数据描述    87
10.2  马尔可夫链(markov chain)算法    90
第2部分
第11章  数据结构    95
11.1  数组    95
11.2  矩阵与多维数组    96
11.3  链表    97
11.4  队列与双向队列    98
11.5  集合与无序组(bag)    99
11.6  字符串缓冲    100
11.7  图    102
第12章  数据文件与持久性    105
12.1  数据文件    105
12.2  串行化(Serialization)    107
12.2.1  保存无环的table    109
12.2.2  保存有环的table    110
第13章  元表(metatable)与元方法(meatmethod)    113
13.1  算术类的元方法    114
13.2  关系类的元方法    116
13.3  库定义的元方法    117
13.4  table访问的元方法    118
13.4.1  _ _index元方法    118
13.4.2  _ _newindex元方法    120
13.4.3  具有默认值的table    120
13.4.4  跟踪table的访问    121
13.4.5  只读的table    123
第14章  环境    125
14.1  具有动态名字的全局变量    125
14.2  全局变量声明    127
14.3  非全局的环境    129
第15章  模块与包    133
15.1  require函数    134
15.2  编写模块的基本方法    136
15.3  使用环境    138
15.4  module函数    140
15.5  子模块与包    141
第16章  面向对象编程    143
16.1  类    144
16.2  继承    146
16.3  多重继承    148
16.4  私密性    150
16.5  单一方法(single-method)做法    152
第17章  弱引用table    153
17.1  备忘录(memoize)函数    154
17.2  对象属性    156
17.3  回顾table的默认值    157
第3部分
第18章  数学库    161
第19章  table库    163
19.1  插入和删除    163
19.2  排序    163
19.3  连接    165
第20章  字符串库    167
20.1  基础字符串函数    167
20.2  模式匹配(pattern-matching)函数    169
20.2.1  string.find函数    169
20.2.2  string.match函数    170
20.2.3  string.gsub函数    170
20.2.4  string.gmatch函数    171
20.3  模式    172
20.4  捕获(capture)    175
20.5  替换    177
20.5.1  URL编码    178
20.5.2  tab扩展    180
20.6  技巧    181
第21章  I/O库    185
21.1  简单I/O模型    185
21.2  完整I/O模型    188
21.2.1  性能小诀窍    189
21.2.2  二进制文件    190
21.2.3  其他文件操作    192
第22章  操作系统库    193
22.1  日期和时间    193
22.2  其他系统调用    195
第23章  调试库    197
23.1  自省机制    197
23.1.1  访问局部变量    199
23.1.2  访问非局部的变量(non-local varible)    200
23.1.3  访问其他协同程序    201
23.2  钩子    202
23.3  性能剖析(profile)    202
第4部分
第24章  C API概述    207
24.1  第一个示例    208
24.2  栈    210
24.2.1  压入元素    211
24.2.2  查询元素    212
24.2.3  其他栈操作    214
24.3  C API中的错误处理    215
24.3.1  应用程序代码中的错误处理    216
24.3.2  库代码中的错误处理    216
第25章  扩展应用程序    219
25.1  基础    219
25.2  table操作    220
25.3  调用Lua函数    224
25.4  一个通用的调用函数    226
第26章  从Lua调用C    229
26.1  C函数    229
26.2  C模块    231
第27章  编写C函数的技术    233
27.1  数组操作    233
27.2  字符串操作    234
27.3  在C函数中保存状态    237
27.3.1  注册表(registry)    237
27.3.2  C函数的环境    239
27.3.3  upvalue    239
第28章  用户自定义类型    243
28.1  userdata    243
28.2  元表    246
28.3  面向对象的访问    248
28.4  数组访问    250
28.5  轻量级userdata(light userdata)    251
第29章  管理资源    253
29.1  目录迭代器    253
29.2  XML分析器    256
第30章  线程和状态    265
30.1  多个线程    265
30.2  Lua状态    269
第31章  内存管理    277
31.1  分配函数    277
31.2  垃圾收集器    279
31.2.1  原子操作    280
31.2.2  垃圾收集器的API    280

本目录推荐