Lua程序设计 版权声明 译序 第一篇 语言 第0章 序言 0.1 序言 0.2 Lua的使用者 0.3 Lua的相关资源 0.4 本书的体例 0.5 关于本书 0.6 感谢 第1章 起点 1.1 Chunks 1.2 全局变量 1.3 词法约定 1.4 命令行方式 第2章 类型和值 2.1 Nil 2.2 Booleans 2.3 Numbers 2.4 Strings 2.5 Functions 2.6 Userdata and Threads 第3章 表达式 3.1 算术运算符 3.2 关系运算符 3.3 逻辑运算符 3.4 连接运算符 3.5 优先级 3.6 表的构造 第4章 基本语法 4.1 赋值语句 4.2 局部变量与代码块(block) 4.3 控制结构语句 4.4 break和return语句 第5章 函数 5.1 多返回值 5.2 可变参数 5.3 命名参数 第6章 再论函数 6.1 闭包 6.2 非全局函数 6.3 正确的尾调用(Proper Tail Calls) 第7章 迭代器与泛型for 7.1 迭代器与闭包 7.2 范性for的语义 7.3 无状态的迭代器 7.4 多状态的迭代器 7.5 真正的迭代器 第8章 编译•运行•错误信息 8.1 require函数 8.2 C Packages 8.3 错误 8.4 异常和错误处理 8.5 错误信息和回跟踪(Tracebacks) 第9章 协同程序 9.1 协同的基础 9.2 管道和过滤器 9.3 用作迭代器的协同 9.4 非抢占式多线程 第10章 完整示例 10.1 Lua作为数据描述语言使用 10.2 马尔可夫链算法 第二篇 tables与objects 第11章 数据结构 11.1 数组 11.2 矩阵和多维数组 11.3 链表 11.4 队列和双向队列 11.5 集合和包 11.6 字符串缓冲 第12章 数据文件与持久化 12.1 序列化 12.1.1 保存不带循环的table 12.1.2 保存带有循环的table 第13章 Metatables and Metamethods 13.1 算术运算的Metamethods 13.2 关系运算的Metamethods 13.3 库定义的Metamethods 13.4 表相关的Metamethods 13.4.1 The __index Metamethod 13.4.2 The __newindex Metamethod 13.4.3 有默认值的表 13.4.4 监控表 13.4.5 只读表 第14章 环境 14.1 使用动态名字访问全局变量 14.2 声明全局变量 14.3 非全局的环境 第15章 Packages 15.1 基本方法 15.2 私有成员(Privacy) 15.3 包与文件 15.4 使用全局表 15.5 其他一些技巧(Other Facilities) 第16章 面向对象程序设计 16.1 类 16.2 继承 16.3 多重继承 16.4 私有性(privacy) 16.5 Single-Method的对象实现方法 第17章 Weak表 17.1 记忆函数 17.2 关联对象属性 17.3 重述带有默认值的表 第三篇 标准库 第18章 数学库 第19章 Table库 19.1 数组大小 19.2 插入/删除 19.3 排序 第20章 String库 20.1 模式匹配函数 20.2 模式 20.3 捕获(Captures) 20.4 转换的技巧(Tricks of the Trade) 第21章 IO库 21.1 简单I/O模式 21.2 完全I/O 模式 21.2.1 I/O优化的一个小技巧 21.2.2 二进制文件 21.3 关于文件的其它操作 第22章 操作系统库 22.1 Date和Time 22.2 其它的系统调用 第23章 Debug库 23.1 自省(Introspective) 23.1.1 访问局部变量 23.1.2 访问Upvalues 23.2 Hooks 23.3 Profiles 第四篇 C API 第24章 C API纵览 24.1 第一个示例程序 24.2 堆栈 24.2.1 压入元素 24.2.2 查询元素 24.2.3 其他堆栈操作 24.3 C API的错误处理 24.3.1 应用程序中的错误处理 24.3.2 类库中的错误处理 第25章 扩展你的程序 25.1 表操作 25.2 调用Lua函数 25.3 通用的函数调用 第26章 调用C函数 26.1 C 函数 26.2 C 函数库 第27章 撰写C函数的技巧 27.1 数组操作 27.2 字符串处理 27.3 在C函数中保存状态 27.3.1 The Registry 27.3.2 References 27.3.3 Upvalues 第28章 User-Defined Types in C 28.1 Userdata 28.2 Metatables 28.3 访问面向对象的数据 28.4 访问数组 28.5 Light Userdata 第29章 资源管理 29.1 目录迭代器 29.2 XML解析 第四篇 附录 A. 终端机控制符 《Lua程序设计学习》这本书是针对Lua编程语言的详尽指南,旨在帮助读者掌握这个轻量级脚本语言。Lua以其简洁的语法和强大的扩展能力,常被用于游戏开发、配置文件、自动化任务等多个领域。 在书中,作者首先介绍了Lua的基础知识,包括语言的序言、目标用户群体、可用资源以及书中的体例。第一章“起点”讲解了Lua的基本概念,如chunks(代码块)、全局变量和词法约定,以及如何通过命令行来运行Lua程序。第二章“类型和值”深入探讨了Lua中的各种数据类型,如nil、boolean、number、string、function以及userdata和thread。 第三章“表达式”和第四章“基本语法”分别介绍了算术、关系、逻辑运算符、连接运算符的优先级,以及赋值语句、局部变量、控制结构语句(如if、while、for等)和break、return语句的用法。第五章和第六章进一步深入函数的概念,涵盖了多返回值、可变参数、命名参数以及闭包和非全局函数,还有正确的尾调用。 第七章“迭代器与泛型for”讲解了如何使用Lua中的迭代器进行数据遍历,包括无状态和多状态迭代器的实现,以及协同程序在其中的作用。第八章“编译·运行·错误信息”讨论了require函数、C包、错误处理机制,特别是错误信息和回跟踪,这对于调试和问题定位至关重要。 第九章“协同程序”介绍了协同程序的基础、管道和过滤器的应用,以及如何用协同程序实现迭代器和非抢占式多线程。第十章“完整示例”给出了Lua在实际项目中的应用,例如作为数据描述语言和马尔可夫链算法的实现。 第二篇“tables与objects”从第十一章到第十六章详细阐述了Lua中的表这一核心数据结构,包括数组、矩阵、链表、集合和包的实现,以及数据文件的序列化和持久化。此外,metatables和metamethods的使用,让读者理解如何自定义表的行为。第十五章讨论了包的管理,以及面向对象编程的概念,包括类、继承、私有性和单方法对象的实现。 第三篇“标准库”涵盖了数学、table、string、IO、操作系统和debug库的使用,提供了各种内置功能,如数学运算、字符串处理、文件操作和系统调用,以及调试工具。 第四篇“C API”部分,从低层次介绍如何使用C语言扩展Lua,包括C API的概览、错误处理、扩展程序、调用C函数的技巧,以及用户自定义类型的创建和资源管理。 通过以上内容,读者不仅可以掌握Lua语言的基本语法,还能深入理解其内部机制,并学会如何利用Lua的强大功能来解决实际问题。无论是初学者还是有经验的开发者,都能从这本书中获得宝贵的启示和实践指导。
剩余63页未读,继续阅读
- ly21st5552012-10-07doc版本的,读者可以对书中内容进行修正
- 丛林隐者2012-08-23这个才是教程嘛,写的不错顶,其他的资料太差,有些直接用翻译软件翻译,质量太差,这边书写的可以
- 粉丝: 0
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Matlab_Matlab线性算子工具箱.zip
- Matlab_Matlab文件用于各种类型的波束形成.zip
- Matlab_Matlab循环统计工具箱.zip
- Matlab_Matlab中的BP神经网络.zip
- Matlab_Matlab研究工具,读取、写入和处理地震数据.zip
- Matlab_Matlab中的曝光融合.zip
- Matlab_Matlab中的图像视频隐写.zip
- Matlab_Matlab中的图形信号处理.zip
- Matlab_MCMC工具箱的Matlab.zip
- Matlab_Matlab中的遗传算法.zip
- Matlab_MIDI工具箱11 2016是一个分析MIDI文件的Matlab函数集合.zip
- Matlab_MPC的简短例子,特别是随机MPC的SMPC与机会约束的Matlab.zip
- Matlab_NCTOOLBOX一个Matlab工具箱,用于处理常见的数据模型数据集.zip
- Matlab_MTEX是一个免费的Matlab定量纹理分析工具箱主页.zip
- Matlab_PILCO策略搜索框架Matlab版.zip
- Matlab_NIPS 2015论文的Matlab代码和补充材料用于序列建模的深度时序s型信念网络.zip