lua语言自学知识点----简单了解

时间:2022-08-02 17:52:00

零碎知识点:

lua:用lua写UI,更新UI,因为lua可直接跨平台解析,不需要编译,方便更新------>热更新.

c#反射也可以达到更新,但非常麻烦,切不支持iOS.

在lua中一个人汉字占两个字符,删除的时候需要删两次.

用type()可以获取变量类型.

如果不定义变量类型,默认为全局变量,局部关键字为:local.

判断语句:

if xt<=0 then-----------------------------判断条件后加关键字"then"

操作..

elseif xt>0 then------------------------elseif连在一块写,区别于C#,同样判断条件后加关键字"then"

else--------------------------------------不管有没有elseif,else不可或缺!!!

end  -------------------------------------判断结束加end.

循环语句:

第一种:while...end

while xt<0 then

操作......

xt=xt+1---------------------注意lua中无自增和自减,用这种方式操作!

end

第二种:for...end

do ------注意lua中索引是从1开始的,且在循环结束条件后加关键字"do","+1"自增

操作....

end

第三种:repeat...until(不需要end结束语)

repeat

操作...

until xt>100

与C#中do...while类似!

break打断循环,没有continue区别于C#!!!

函数:

格式:

function   方法名 (参数01,参数02)-------默认全局变量,有返回值,有参,用关键字"function"

return  参数01+参数02---------------------返回值

end-----------------------------------------------结束语

自带函数:(可查官方API)

math: 数学公式

.abs    绝对值

.max,min  极值

.random   随机

string: 字符串操作

..                    字符串相加,拼接

.tostring(/tonumber)  字符串格式转化

.upper(/lower)           转化大小写

.sub(str,1,length)      截取字符串(字符串,起始下标,截取长度)

.format(str,....)       字符串的拼接

table:(与C#中字典类似)

(一).创建table的三种方式:

A:

mytable={}

mytable[1]=34

mytable["name"]=xt------另一种写法mytable.name=xt

B: mytable={name="b2",age=18,isman=false}

注意用",隔开,且可以在继续添加

C: mytable={34,54,64,789,1}

因为是键值对,所以此时的key被系统从1开始赋值

(二).遍历:

1).如果是上面c类型的table 

           for   index=1,table.getn(mytable) ,1 do--------注意遍历第一个下标为1

print (mytable[index])------------------------index已经自增

end---------------------------------------------------结束语

2).普遍适用(相当于C#中foreach)

for    index,value    in  pairs(mytable)  do

print  (index ,value)

end

注意:遍历顺序是有问题的,因为字典(/table)是无序的,所以遍历有问题,但也不是无迹可寻,详情请参照"菜鸟驿站--遍历"

(三).table中的常用方法

table.getn(mytable)-----------------获取mytable的长度;

table.concat(mytable)--------------------把mytable表中所有数据连成一个字符串展示出来,必须是c格式的table

table.insert(mytable,key,value)---------插入新键值对;

A,B格式insert是新加入一个键值对

C格式中key相当于在默认值中改动

table.remove(mytable,key)-----------------移除某个键;

table.sort(mytable)-----------------针对C格式的键值进行排序;

table.move()-----------------移动数据;

table.pack()-----------------包装成一个表;

table.unpack()-----------------返回一个数组;

(四).面向对象----table之间的关系

lua中面向对象由table实现.

具体操作:

Enemy={}   -------------------申明一个table

local  this  =Eneny----------申明 table  this

函数写法一:

Enemy.Move=function()----Move为函数方法

操作....

end

函数写法二:

function=Enemy.Attack()--Attack为函数方法

操作....

this.Move()------------------调用Move方法

end