• lua脚本关键


    注释

    单行:--

    多行:--[[  ]]

    1. --[[arr={key1="val1",key2="val2",key3="val3"}
    2. for k,v in pairs(arr) do
    3. print(k.."->"..v)
    4. end]]

    函数

    函数一定要调用才有效

     函数返回值

    可变参数函数

    不同于其他语言的运算符

    不等于

    ~=

    逻辑运算符

    没有&&,||这些符号,只用字母

    and

    注意,第一个结果为true--->才可以输出第二个非布尔值

    如果第一个为false 则输出false

    or

     false才输出

    取反运算符--not

     连接字符串的运算符-- ..

    print

    不能合并输出数据和变量,一定要用..连接发送

     算术运算符

    lua没有自增,自减

    do----end

    可以在外部作为局部使用

    if---else

    不需要括号

    循环语句

    注意:

    1,for循环中一定要定义变量,不能只利用数值

    1. i=1
    2. j=1
    3. print(i)
    4. for 1,100 do
    5. print(j)
    6. tmp=j
    7. j=i+j
    8. i=tmp
    9. end
    10. --报错

    2,初始值加上步长,终止值是满足条件的

     变量

    空变量怎么声明

    local k=""

    Lua中的变量每一个时刻都和数据类型无关,前面可以是字符串,后面可以用于整形

    local var="abc"

    var=100

    和数组很像,但是比数组更灵活

    定义表时,不要加上[ ]

    索引从1开始

    表中可以存储不同数据类型

    表元素删除 

    函数作为表元素

    调用

    1. funcArray={}
    2. funcArray.printName=function()
    3. print("I am laoda")
    4. end
    5. funcArray.printAge=function()
    6. print("I am 23")
    7. end
    8. funcArray.printName() --调用必须用点
    9. funcArray.printAge()

     

    获取表的元素个数--#

     

     

    向表中添加元素

    1,

    2,

    表删除元素

    remove会返回删除的元素

    1. del=table.remove(array,2)
    2. print(del)

     表元素排序

    table.sort()---升序排序

    高级函数与控制结构

    string库

     函数返回值作为函数参数或者指派表达式参数

     

    函数尾调用

     函数会出栈,节约时间

    泛型for以及原理

    lua中迭代器本身就是一个函数

     

    1. arr={key1="val1",key2="val2",key3="val3"}
    2. for k,v in pairs(arr) do
    3. print(k.."->"..v)
    4. end
    5. pairs()就是迭代器

    迭代器内部实现原理

     

    1. ---[[自己实现的迭代器函数]]
    2. function myPairs(arr)
    3. return doPairs,arr,0 --只需要函数名
    4. end
    5. function doPairs(arr,i)
    6. i=i+1;
    7. local val=arr[i]
    8. if val then
    9. return i,val
    10. else
    11. return nil,nil
    12. end
    13. end
    14. array={1,2,3,4,5}
    15. for k,v in myPairs(array) do
    16. print(k.."->"..v)
    17. end

    函数库

    string库

    tostring()

    tonumber()

    返回变量类型--type()

    更改表中指定位置元素---rawset()

    获取表中指定位置元素---rawget()

    比较两个数值是否相等

    返回表中某些元素,使用分隔符

    1. arr={1,2,3,4}
    2. print(table.concat(arr)) --输出所有元素
    3. print(table.concat(arr," ",2,4)) --空格分隔,输出2到4的元素

    返回表最大索引

    排序以及自定义排序 

    1. arr={1,2,3,4}
    2. mySort=function(a,b)
    3. return b
    4. end
    5. table.sort(arr,mySort)
    6. print(table.concat(arr))

     键值成对操作

    只能操作数值 

    没有i操作所有

    表元素的获取和设置

     

     

    文件相关函数 

     

    其他库函数

     

     

  • 相关阅读:
    Python logging模块:别再用print来打印啦~
    Day 21 LAMP架构和DNS域名
    正厚软件-软件测试用例设计方法之二-边界值
    CentOS Integration SIG 正式成立
    《深入浅出WPF》学习笔记
    【Unity2D】关卡编辑好帮手——TileMap
    zlib中zip和unzip的bug修复(报错及中文乱码)
    Spring MVC 之MVC 体系结构、什么是SpringMVC
    【数据结构】二叉树链式结构的实现
    字典服务的设计与管理
  • 原文地址:https://blog.csdn.net/m0_60274660/article/details/126067971