这里重点总结一下lua基础,几个简单的点,记录下来,方便之后查看,不是很详细,稍微归纳了一下。也但愿能够帮到lua初学者。数组
Lua简介:函数
Lua脚本能够很容易的被C/C++代码调用,也能够反过来调用C/C++的 函数,这使得Lua在应用程序中能够被普遍应用。不只仅做为扩展脚本, 也能够做为普通的配置文件,代替XML,ini等文件格式,而且更容易理解 和维护。lua
Lua由标准C编写而成,代码简洁优美,几乎在全部操做系统和平台上 均可以编译,运行。一个完整的Lua解释器不过200k,在目前全部脚本引 擎中,Lua的速度是最快的。这一切 都决定了Lua是做为嵌入式脚本的最 佳选择。spa
1、变量操作系统
lua中变量的命名规则和C语言中同样:字母数字下划线,不能以数字开头,区分大小写,不能是关键字。(这估计都顺嘴就出来了)code
变量的赋值规则和C语言,C++里不是很同样,须要注意如下两点:blog
若是变量的个数小于值的个数,用nil补充。(下面的数据类型中会详细介绍)索引
若是变量的个数大于值的个数,则多余的值则将被忽略。ip
Lua中的变量也分为全局变量和局部变量
开发
全局变量:a = 5;
局部变量:local a = 5;
2、数据类型
lua中的数据类型和C语言中的数据类型不太同样,C语言中有多种数据类型,好比数字就有int,short,long,float,double还有枚举类型等等好多,可是在Lua语言里,数据类型只有八种:number, string, nil, bool, function, table, userdate, thread (userdate和thread在开发中不经常使用,因此下面就不作过多介绍了)
number:指任意实数。包括了 int,short,long,float,double。。。并且number若是有小数,除不尽的状况下,不仅是精确到小数点后八位。
string:这个和C#里有必定区别,在C#里,对一个字符串从新赋值,是从新复制一块空间,进行赋值,原字符串所占空间不销毁。可是在Lua里面,就是直接在这块空间上改写字符串的内容。
数字和字符串之间的转换:
将数字转换成字符串,能够强转,用tostring(),或者隐式转换(10 .. "Mumu"),须要注意,数字后面必须有空格,否则系统就默认第一个点为小数点
字符串转换为数字,用tonumber(),可是必定要保证字符串是纯数字,否则编译错误,(不能经过ascll码转换)。
nil:相似于C中的null,也能够用来对变量的删除操做
bool:这个和其余语言也有很大不同,C语言中是0或者false为假,其他都为真,而在Lua语言里面,只有nil或者false为假,其他为真,包括0,这个概念必定要记住,不要和其余语言混淆。
function:方法,使用function须要注意,必须先声明,后调用,不然报错。并且能够有多个返回值。
table:表,至关于数组、字典、列表...以键值对形式存储,索引值从一开始递增一
和数组同样,有两种初始化方式:
方式一:先定义一个空表,而后初始化。
tab = { },
tab[1] = "Mumu"
tab["age"] = "15"
方式二:定义的同时初始化
tab = {"Mumu",age = 15}
遍历输出表中元素
这时有两种遍历方式。第一种:
for i,v in ipairs(tab) do print(i,v) end
输出结果为
1 Mumo [Finished in 0.1s]
第二种:
for k,v in pairs(tab) do print(k,v) end
输出结果为:
1 Mumo name 15 [Finished in 0.1s]
由此能够看出,ipairs只能遍历索引为整数的元素,pairs能够遍历表中全部元素。
3、运算符
Lua中的运算符有,算术运算符,关系运算符,逻辑运算符
算术运算符:+ - * / = % ...
关系运算符:> < >= <= == ~= (Lua中的不等因而~=)
逻辑运算符:and or not (至关于C语言中的&& || !)
and:当表达式一位真的时候 返回表达式二的值,当表达式一为假的时候,返回表达式一的值
or:当表达式一为真的时候,返回表达式一的值,当表达式一为假的时候,返回表达式二的值
not:取反,值为true或者false
4、语句
语句分为:
赋值语句,条件语句(没有switch),循环语句
条件语句:if ... then end
循环语句: for ... do ... end while ... do ... end repeat... until....end