Lua程序设计(第4版)

Lua程序设计(第4版)
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
2018-07
版次: 4
ISBN: 9787121338045
定价: 89.00
装帧: 其他
开本: 16开
纸张: 胶版纸
  • 本书由 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 安全访问    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
  • 内容简介:
    本书由 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 安全访问    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
查看详情
您可能感兴趣 / 更多
Lua程序设计(第4版)
LucianFreud
Sebastian Smee 著
Lua程序设计(第4版)
Lucid Intervals: A Stone Barrington Novel
Stuart Woods 著
Lua程序设计(第4版)
Luxe Knits: The Accessories[豪华针织: 配件: 用服装装饰来编织和钩织]
Laura Zukaite 著
Lua程序设计(第4版)
Lucienne Day: In The Spirit Of The Age
Andrew Casey 著
Lua程序设计(第4版)
LuxuryBrandManagement:AWorldofPrivilege
Michel Chevalier 著
Lua程序设计(第4版)
Lua解释器构建:从虚拟机到编译器
吴尹杰 著
Lua程序设计(第4版)
Lupercal
Ted Hughes
Lua程序设计(第4版)
LucyCousinsTreasuryofNurseryRhymesBookandCD
Cousins、Lucy 著
Lua程序设计(第4版)
Lux:LampsandLights
R. Klanten 著
Lua程序设计(第4版)
Lucid
Ron Bass 著
Lua程序设计(第4版)
Luckiest Girl Alive:A Novel
Jessica Knoll
Lua程序设计(第4版)
LucianFreud:Portraits
Norman Rosenthal 编
系列丛书 / 更多
Lua程序设计(第4版)
LucianFreud
Sebastian Smee 著
Lua程序设计(第4版)
Lucid Intervals: A Stone Barrington Novel
Stuart Woods 著
Lua程序设计(第4版)
Luxe Knits: The Accessories[豪华针织: 配件: 用服装装饰来编织和钩织]
Laura Zukaite 著
Lua程序设计(第4版)
Lucienne Day: In The Spirit Of The Age
Andrew Casey 著
Lua程序设计(第4版)
LuxuryBrandManagement:AWorldofPrivilege
Michel Chevalier 著
Lua程序设计(第4版)
Lua解释器构建:从虚拟机到编译器
吴尹杰 著
Lua程序设计(第4版)
Lupercal
Ted Hughes
Lua程序设计(第4版)
LucyCousinsTreasuryofNurseryRhymesBookandCD
Cousins、Lucy 著
Lua程序设计(第4版)
Lux:LampsandLights
R. Klanten 著
Lua程序设计(第4版)
Lucid
Ron Bass 著
Lua程序设计(第4版)
Luckiest Girl Alive:A Novel
Jessica Knoll
Lua程序设计(第4版)
LucianFreud:Portraits
Norman Rosenthal 编
相关图书 / 更多
Lua程序设计(第4版)
LucianFreud
Sebastian Smee 著
Lua程序设计(第4版)
Lucid Intervals: A Stone Barrington Novel
Stuart Woods 著
Lua程序设计(第4版)
Luxe Knits: The Accessories[豪华针织: 配件: 用服装装饰来编织和钩织]
Laura Zukaite 著
Lua程序设计(第4版)
Lucienne Day: In The Spirit Of The Age
Andrew Casey 著
Lua程序设计(第4版)
LuxuryBrandManagement:AWorldofPrivilege
Michel Chevalier 著
Lua程序设计(第4版)
Lua解释器构建:从虚拟机到编译器
吴尹杰 著
Lua程序设计(第4版)
Lupercal
Ted Hughes
Lua程序设计(第4版)
LucyCousinsTreasuryofNurseryRhymesBookandCD
Cousins、Lucy 著
Lua程序设计(第4版)
Lux:LampsandLights
R. Klanten 著
Lua程序设计(第4版)
Lucid
Ron Bass 著
Lua程序设计(第4版)
Luckiest Girl Alive:A Novel
Jessica Knoll
Lua程序设计(第4版)
LucianFreud:Portraits
Norman Rosenthal 编