2012-04-02 wcdj
$ lua -v
Lua 5.2.0 Copyright (C) 1994-2011 Lua.org, PUC-Rio
目录
0 什么是Lua?
Lua本身是以简单优雅为本,着眼于处理那些C不擅长的任务;
Lua本身完全遵循ANSI C而写成,只要有C编译器的地方,Lua便可发挥她的力量;
对那种在产品的生命周期内变化比较多的应用方向,使用Lua可以更方便的适应变化;
Lua有很高的执行效率,统计表明Lua是目前平均效率最高的脚本语言;
Lua的使用者分为三类:使用Lua嵌入到其他应用中的、独立使用Lua的、将Lua和C混合使用的;
1 Lua简单介绍
n 和其他脚本一样,Lua有两种执行方式。
(1) 命令行交互式。即不带参数运行,使用文件结束符退出Ctrl-D in Unix, Ctrl-Z in DOS/Windows,或者调用os.exit()退出。
(2) 调用脚本执行(带脚本文件参数运行)。
(3) 在命令行交互过程中,可以使用dofile函数调用外部的脚本文件来加载需要的library。
n Lua是动态类型语言,变量不用类型定义。
全局变量不需要声明,给一个变量赋值后即创建了这个全局变量。访问一个没有初始化的全局变量也不会出错,只是得到结果为 nil。当且仅当一个变量不等于nil时,这个变量才存在。
Lua中有8个基本类型:
nil, boolean, number, string, userdata,function, thread, table
注意:
(1) 函数type可以测试给定变量或值的类型。
(2) 变量没有预定义的类型,每一个变量都可能包含任一种类型的值。
(3) 可以使用函数像使用其他值一样使用(将一个函数赋值给一个变量)。
(4) nil是Lua中特殊的类型,一个全局变量没有被赋值以前默认值为nil;给全局变量赋值为nil可以删除该变量。
(5) boolean有两个取值false和true。Lua中所有的值都可以作为条件。在控制结构的条件中除了false和nil为假,其他值都为真。所以,Lua认为0和空串都是真。
(6) number表示实数,Lua中没有整数。Lua的number可以处理任何长整数不用担心误差。
(7) string指字符的序列。string和其他对象一样,Lua自动进行内存分配和释放,一个string可以只包含一个字母也可以包含一本书,Lua可以高效地处理长字符串,1M的string在Lua中是