首 页
手机版

lua程序设计(programming in lua) pdf高清版

阅读器

lua程序设计(programming in lua)是一本综合性强,介绍全面的lua中文教程,全书详细介绍了lua语言所具有的功能,并使用大量示例来演示如何将它们运用到实际的任务中。深入地介绍了lua中唯一的数据结构table,还讨论了数据结构、持久化、包和面向对象编程。展示了lua的标准库,对那些想将lua作为一门独立语言来使用的开发者特别有用,每一章介绍一个库,包括数学库、table库、字符串库、I/O库、操作系统库、调试库介绍lua与C语言之间的API,这是为那些想用C语言来访问lua功能的人准备的。

基本介绍

目前很多程序语言都专注于帮你编写成千上万行的代码,所以此类型的语言所提供的包、命名空间、复杂的类型系统及无数的结构,有上千页的文档需要操作者学习。

而lua并不帮你编写大量的代码的程序,相反的,lua仅让你用少量的代码解决关键问题。为实现这个目标,像其他语言一样lua依赖于其可扩展性。但是与其他语言不同的是,不仅用lua编写的软件易于扩展,而且用其他语言比如C/C++编写的软件也很容易使用lua扩展其功能。

一开始,lua就被设计成很容易和传统的C/C++整合的语言。这种语言的二元性带来了极大的好处。lua是一个小巧而简单的语言,因为lua不致力于做C语言已经做得很好的领域,比如:性能、底层操作以及与第三方软件的接口。lua依赖于C去做完成这些任务。lua所提供的机制是C不善于的:高级语言、动态结构、简洁、易于测试和调试等。正因为如此,lua具有良好的安全保证,自动内存管理,简便的字符串处理功能及其他动态数据的改变。

lua不仅是一种易于扩展的语言,也是一种易整合语言(glue language);lua支持基于组件的,我们可以将一些已经存在的高级组件整合在一起实现一个应用软件。一般情况下,组件使用像C/C++等静态的语言编写。但lua是我们整合各个组件的粘合剂。又通常情况下,组件(或对象)表现为具体在程序开发过程中很少变化的、占用大量CPU时间的决定性的程序,例如窗口部件和数据结构。对那种在产品的生命周期内变化比较多的应用方向使用Lua可以更方便的适应变化。除了作为整合语言外,lua自身也是一个功能强大的语言。lua不仅可以整合组件,还可以编辑组件甚至完全使用Lua创建组件。

除了lua外,还有很多类似的脚本语言,例如:Perl、Tcl、Ruby、Forth、Python。虽然其他语言在某些方面与Lua有着共同的特色,但下面这些特征是lua特有的:

1、可扩展性

lua的扩展性非常卓越,以至于很多人把Lua用作搭建领域语言的工具(注:比如游戏脚本)。Lua被设计为易于扩展的,可以通过Lua代码或者C代码扩展,Lua的很多功能都是通过外部库来扩展的。Lua很容易与C/C++、java、fortran、Smalltalk、Ada,以及其他语言接口。?

2、简单

lua本身简单,小巧;内容少但功能强大,这使得Lua易于学习,很容易实现一些小的应用。它的完全发布版(代码、手册以及某些平台的二进制文件)仅用一张软盘就可以装得下。

3、高效率

lua有很高的执行效率,统计表明Lua是目前平均效率最高的脚本语言。?

4、与平台无关

lua几乎可以运行在所有我们听说过的系统上,如NextStep、OS/2、PlayStation?II?(Sony)、Mac?OS-9、OS?X、BeOS、MS-DOS、IBM?mainframes、EPOC、PalmOS、MCF5206eLITE?Evaluation?Board、RISC?OS,及所有的Windows和Unix。Lua不是通过使用条件编译实现平台无关,而是完全使用ANSI(ISO)C,这意味着只要你有ansi c编译器你就可以编译并使用Lua。

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 序列化

第 13 章 Metatables and Metamethods

13.1 算术运算的Metamethods

13.2 关系运算的Metamethods

13.3 库定义的Metamethods

13.4 表相关的Metamethods

第 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 多重继承 122 

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 模式

第 22 章 操作系统库

22.1 Date和Time

22.2 其它的系统调用

第 23 章 Debug库

23.1 自省(Introspective)

23.2 Hooks

23.3 Profiles

第四篇 C API

第 24 章 C API纵览

24.1 第一个示例程序

24.2 堆栈

24.3 C API的错误处理

第 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函数中保存状态

第 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解析

收起介绍展开介绍
  • 下载地址
lua程序设计(programming in lua) pdf高清版

有问题? 点此报错

发表评论

0条评论