zoukankan      html  css  js  c++  java
  • Lua基本语法-书写规范以及自带常用函数

    Lua基本语法-书写规范和常用函数


    本文提供全流程,中文翻译。

    Chinar坚持将简单的生活方式,带给世人!

    (拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例)




    1

    String Operation —— 字符串操作


    Lua 中自带了一些操作字符串的函数

    举个栗子黑白88

    name="name is chinar,hello world.CSDN"
    
    -- string.lower —— 字符串转:小写
    print(string.lower(name))
    
    -- string.upper —— 字符串转:大写
    print(string.upper(name))
    
    -- string.sub —— 字符串提取字符:从name中的第1个到第6个(算上空格)
    print(string.sub(name,1,6))
    
    -- string.find —— 字符串查找字符:从name中找字符串 hel,返回下标表示从几到几
    print(string.find(name,'hel'))
    
    -- .. —— 字符串拼接
    print('fps://'..name)

    输出后:

    name is chinar,hello world.csdn
    NAME IS CHINAR,HELLO WORLD.CSDN
    name i
    16  18
    fps://name is chinar,hello world.CSDN

    2

    Table —— 表


    Lua 中表 { } 的创建方式和赋值

    举个栗子黑白88

    -- 第一种表创建的方式
    -- 表的声明,声明一个空表
    MyTable={}
    -- 表的赋值
    MyTable[1]=33
    MyTable[3]='chinar'
    -- 表的赋值 下边两种是相同的,都表示键为:name.所以后边的hello world 会覆盖掉 chianr work
    MyTable['name']='chianr work'
    MyTable.name='hello world'
    -- 输出值
    print(MyTable[1],MyTable['name'],MyTable.name)
    
    -- 第二种表创建的方式
    -- 表声明,并直接赋值完成初始化。如果名字重复,会直接覆盖之前的表
    MyTable={name='chinar',high=175,isFemale=false}
    -- 输出MyTable中的isFemale为:false
    print(MyTable.isFemale)
    
    
    -- 第三种创建方式
    -- 对应的键为下标,这种表由于全部都是数字,所以可以直接用for循环直接遍历
    MyTable={66,777,8888,99999,000000,1}
    print(MyTable[1])
    -- 遍历表,#MyTable可以获取表的长度
    for i=1,#(MyTable) do
        print(MyTable[i])
    end
    -- 遍历表,同时访问键值。可以用作遍历所有表,不是数字同样可以输出键值
    MyTable={name='chinar',high=175,isFemale=false}
    for i,v in pairs(MyTable) do
        print(i,v)
    end

    输出后:

    33  hello world hello world
    false
    66
    66
    777
    8888
    99999
    0
    1
    name    chinar
    isFemale    false
    high    175

    3

    Table Operation —— 表的相关操作


    Lua 中自带了表 { } 的一些常用操作函数

    举个栗子黑白88

    MyTable={'dd',66,777,8888,99999,000000,1}
    -- table.concat()合并表中的字符串,值。输出一长串的字符串
    print(table.concat(MyTable))
    
    -- table.insert 在表中插入一个元素
    table.insert(MyTable,4,"chianr")--相当于MyTable[4]="chianr"
    print(MyTable[4])
    
    -- 移除指定位置数据
    print(MyTable[1])--当前第二个元素为dd
    -- 移除第二个元素
    table.remove(MyTable,1)
    print(MyTable[1])--当前第二个元素为66
    
    MyTable={66,777,8888,99999,000000,1}
    -- table.sort 从小到大排列
    table.sort(MyTable)
    print(table.concat(MyTable))
    
    -- table.unpack返回一个指定范围的数组
    print(table.unpack(MyTable,2,3))

    输出后:

    dd6677788889999901
    chianr
    dd
    66
    0166777888899999
    1   66

    4

    Class —— 类


    Lua 中类的创建 和 函数的创建

    举个栗子黑白88

    -- 类的声明
    People={}
    
    -- 创建一个私有变量this来代替People,方便书写
    local this=People
    
    -- 类变量
    People.hp=100
    People.sp=1000
    
    -- 第一种声明方法的操作
    People.Fangfa=function( ... )
        print('chinar')
    end
    
    -- 第二种声明方法的操作 —— 这种较为常用
    function People.Run( ... )
        this.Fangfa()--方法中调用已经声明的方法
        print(this.hp,"Run")
    end
    
    -- 调用方法
    People.Run()

    输出后:

    chinar
    100 Run

    5

    Math —— 数学函数


    Lua 中自带了一些数学函数,方便开发者使用

    举个栗子黑白88

    -- 定义一个函数:Chinar 
    -- 返回值为:参数a1+a2
    function Chinar(a1,a2)
        return a1+a2
    end
    
    -- 定义变量fun接收函数Chianr的返回值
    fun=Chinar(66,88)
    
    -- 输出
    print(fun)
    
    -- 求绝对值
    print(math.abs(-66))
    
    -- 求最大数
    print(math.max(1,4,555,3,66,999))
    
    -- 求随机数,需要多些几个才会有不同的值
    print(math.random())
    print(math.random())
    
    -- 求平方根
    print(math.sqrt(9))
    
    -- 其余的几乎都是求三角函数的夹角
    print(math.sin(60))
    print(math.cos(60))
    print(math.tan(60))

    输出后:

    154
    66
    999
    0.001251220703125
    0.56356811523438
    3.0
    -0.30481062110222
    -0.95241298041516
    0.32004038937956
    

    支持

    May Be —— 搞开发,总有一天要做的事!


    拥有自己的服务器,无需再找攻略!

    Chinar 提供一站式教程,闭眼式创建!

    为新手节省宝贵时间,避免采坑!


    先点击领取 —— 阿里全产品优惠卷 (享受最低优惠)


    1 —— 云服务器超全购买流程 (新手必备!)

    2 —— 阿里ECS云服务器自定义配置 - 购买教程(新手必备!)

    3—— Windows 服务器配置、运行、建站一条龙 !

    4 —— Linux 服务器配置、运行、建站一条龙 !





    技术交流群:806091680 ! Chinar 欢迎你的加入


    END

    本博客为非营利性个人原创,除部分有明确署名的作品外,所刊登的所有作品的著作权均为本人所拥有,本人保留所有法定权利。违者必究

    对于需要复制、转载、链接和传播博客文章或内容的,请及时和本博主进行联系,留言,Email: ichinar@icloud.com

    对于经本博主明确授权和许可使用文章及内容的,使用时请注明文章或内容出处并注明网址

  • 相关阅读:
    Oracle开发常用函数与存储过程
    winform 窗体传值
    asp.net中的窗口弹出实现,包括分支窗口 . ASP.NET返回上一页面实现方法总结 .
    android语音识别和合成第三方 .
    百度拾取坐标系统 .
    过滤非法字符和发送邮件
    过滤字符串的Html标记 c#函数 .
    asp.net ListBox 移除操作的思路
    [POI2008]MAF-Mafia
    [BJOI2019]删数
  • 原文地址:https://www.cnblogs.com/chinarbolg/p/9601479.html
Copyright © 2011-2022 走看看