Lua程序设计

0
(0)

Lua程序设计

作者:罗伯拖·鲁萨利姆斯奇(RobertoIerusalimschy)

出版社:电子工业出版社

译者:梅隆魁

出版年:2018-7-1

页数:432

定价:CNY89.00

装帧:平装

ISBN:9787121338045

内容简介
······

《Lua程序设计(第4版)》由Lua 语言作者亲自撰写,针对Lua 语言本身由浅入深地从各个方面进行了完整和细致的讲解。作为第4 版,《Lua程序设计(第4版)》主要针对的是Lua 5.3,这是《Lua程序设计(第4版)》撰写时Lua 语言的最新版本。作者从语言使用者的角度出发,讲解了语言基础、编程实操、高级特性及C 语言API 等四个方面的内容,既有Lua 语言基本数据类型、输入输出、控制结构等基础知识,也有对模块、闭包、元表、协程、延续、反射、环境、垃圾回收、函数式编程、面向对象编程、C 语言API 等高级特性的系统讲解,还有对Lua 5.3 中引入的整型、位运算、瞬表、延续等新功能的细致说明。

所有与Lua 语言打交道的人均能从《Lua程序设计(第4版)》受益,包括游戏、嵌入式、物联网、软件安全、逆向工程、移动互联网、C 语言核心系统开发等诸多领域中对Lua 语言有一般使用需要的从业人员,以及需要从编译原理或语言设计哲学和实现角度深入学习Lua 语言脚本引擎的高级开发者或研究人员。

目录
······

第 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 安全访问 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 函数是第一类值 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 小插曲:出现频率最高的单词 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 第一个示例 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

评论 ······

c语言部分弃了

不时翻翻 总有新的体会

前边很平淡,后面才精彩

唯一一本lua基础知识书籍

点击星号评分!

平均分 0 / 5. 投票数: 0

还没有投票!请为他投一票。

评论 抢沙发

评论前必须登录!

 

登录

找回密码

注册