lua基础部分(变量,数据类型, 运算符, 语句)

这里重点总结一下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

相关文章
相关标签/搜索