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


     零碎知识点:

    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 

    for  xt=1,maxInt,1  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

  • 相关阅读:
    $_ENV 为空的原因
    Android-自动完成提示框CompletionTextView
    Android-Spinner下拉列表
    Android-自定义进度条
    Android-自定义RadioButton
    Android-原生对话框
    Android-Style样式
    Android-ListView-(BaseAdapter使用)
    Android-ListView-(BaseAdapter初步)
    Android-ListView-SimpleAdapter
  • 原文地址:https://www.cnblogs.com/Future-Better/p/9915585.html
Copyright © 2020-2023  润新知