Lua入门第一节 序章

来源:互联网 发布:mysql 重启服务 编辑:程序博客网 时间:2024/05/17 08:41

第一部分:

第一次准备下定决心写下一系列的教程,因为形式所逼啊,不得不学习新的东西来充实自己。厚积薄发一直是本人本人的信条,只要努力够了,技术一定会慢慢变好,只要技术好了,挣的钱肯定也会越来越多的。这次写系列教程只是入门级的,因为我们的新项目要用到Lua来实现热更新,所以要对Lua进行系统的学习。除了Lua之外,还会慢慢加入C#,JavaScript,Unity等相关的内容。本次本次教程持续时间为6周左右,大约分为四大部分三十一章的内容。每周更新5篇左右,中间也会掺杂C#和Untity相关内容。

第二部分:具体内容


首先说一下,本教程是参考周惟迪的《Lua程序设计(第2版)》写的,但是之后会加入很多本人项目开发中的内容,如教程中写的有什么不妥当的地方请大家及时指正,多谢大家。

正文:

第1部分



第一章 开始

1.1 程序块
1.2 词法变量
1.3   全局变量 
1.4 解释器程序

第二章 类与值
2.1 nil(空)
2.2 boolean(布尔)
2.3 number(数字)
2.4 string(字符串)
2.5 table(表)
2.6 function(函数)
2.7  userdata(自定义类型)和thread(线程)

第三章 表达式
3.1 算数操作符
3.2 关系操作符
3.3 逻辑操作符
3.4 字符串连接
3.5 优先级
3.6 table构造式(table constructor)

第四章 语句
4.1 赋值

4.2 局部与块

4.3 控制结构

4.3.1  if then else

4.3.2  while

4.3.3  repeat

4.3.4  数字型  for(numeric for)

4.3.5  泛型  for (generic for)

4.4 break 与return

第五章 函数


5.1 多重返回值(mutiple results)

5.2 变长参数(variable number of arguments)

5.3 具名参数(named arguments)


第六章 深入函数

6.1 closure (闭合函数)

6.2 非全局的函数(non-global function)

6.3 正确的尾调用


第七章 迭代器与泛型for

7.1 迭代器月closure

7.2 泛型for的语句

7.3 无状态的迭代器

7.4 具有更复杂状态的迭代器

7.5 真正的迭代器


第八章 编译、执行与错误


8.1 编译

8.2 C代码

8.3 错误

8.4 错误处理与异常

8.5 错误消息与追溯


第九章 协同程序(coroutine)

9.1 协同程序基础

9.2 管道(pipe)与过滤器(filter)

9.3 以协同程序实现迭代器

9.4 非抢先式(non-preemptive)的多线程


第十章 完整的示例


10.1  数据的描述

10.2  马尔可夫链(markov chain)算法


第2部分  


第十一章 数据结构

11.1  数组
11.2  矩阵与多维数组
11.3  链表
11.4  队列与双向队列
11.5  集合与无需组
11.6  字符串缓冲
11.7  图

第十二章 数据文件与持久性

12.1  数据文件
12.2  串行化 (serialization)
12.2.1  保存无环的table
12.2.2  保存有环的table

第十三章 元表(metatable)与元方法(meatmethod)

13.1  算数类的元方法
13.2  关系类的元方法
13.3  库定义的元方法
13.4  table访问的元方法
13.4.1   __index元方法
13.4.2   __newindex元方法
13.4.3  具有默认值的table
13.4.4  跟踪table的访问
13.4.5  只读的table

第十四章 环境
14.1  具有动态名字的全局变量
14.2  全局变量声明
14.3  非全局的环境

第十四章 模块与包

15.1  require函数
15.2  编写模块的基本方法
15.3  使用环境
15.4   module函数
15.5  子模块与包

第十六章 面向对象编程

16.1  类
        16.2  继承
16.3  多重继承
16.4  私密性
16.5  单一方法(single-method)做法

第十七章 弱引用table

17.1  备忘录(memoize)函数
17.2  对象属性
17.3  回顾table的默认值

第3部分

第十八章 数学库


第十九章 table库

19.1  插入和删除
19.2  排序
19.3  连接

第二十章 字符串库

20.1  基础字符串函数
20.2  模式匹配(pattern-matching)函数
20.2.1  string.find 函数
20.2.2  string.match  函数
20.2.3  string.gsub 函数
20.24  string.gmatch 函数
20.3  模式
20.4  捕获(capture)
20.5  替换
20.5.1  URL编码
20.5.2  tab扩展
20.6  技巧

第二十一章 I/O库

21.1  简单I/O模型
21.2  完整I/O模型
21.2.1  性能小诀窍
21.2.2  二进制文件
21.2.3  其他文件操作

第二十二章 操作系统库

22.1  日期和时间
22.2  其他系统调试

第二十三章 调试库

23.1  自省机制
23.1.1  访问局部变量
23.1.2  访问非局部的变量(non-local varible)
23.1.3  访问其他协同程序
23.2  钩子
23.3  性能剖析(profile)

第4部分


第二十四章 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.1  基础
25.2  table操作
25.3  调用lua函数
25.4  一个通用的调用函数

第二十六章 从lua调用C

26.1  C函数
26.2   C模块

第二十七章 编写C函数的技术

27.1  数组操作
27.2  字符串操作
27.3  在C函数中保存状态
27.3.1  注册表
27.3.2  C函数环境
27.3.3  upvalue

第二十八章 用户自定义类型
28.1  userdata
28.2  元表
28.3  面向对象的访问    
28.4  数组访问
28.5  轻量级userdata(light userdata)

第二十九章 管理资源

29.1  目录迭代器
29.2  XML文件分析器

第三十章 线程和状态

30.1  多个线程
30.2  lua状态

第三十一章 内存管理

31.1  分配函数
31.2  垃圾收集器
31.2.1  原子操作
31.2.2  垃圾收集器的API


基本内容和框架基本上介绍完成,请继续阅读后续内容……


0 0
原创粉丝点击