上海古都建筑设计集团,上海办公室装修设计公司,上海装修公司高质量的内容分享社区,上海装修公司我们不是内容生产者,我们只是上海办公室装修设计公司内容的搬运工平台

Lua语法基本使用

guduadmin271月前

🍓 简介:java系列技术分享(👉持续更新中…🔥)

🍓 初衷:一起学习、一起进步、坚持不懈

🍓 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正🙏

🍓 希望这篇文章对你有所帮助,欢迎点赞 👍 收藏 ⭐留言 📝

🍓 更多文章请点击

Lua语法基本使用,在这里插入图片描述,第1张Lua语法基本使用,在这里插入图片描述,第2张

文章目录

  • 一、Lua简介
  • 二、Lua安装
    • 2.1 Hello World 入门
    • 三、数据类型
    • 四、基本语法
      • 4.1 注释
      • 4.2 交互式编程
      • 4.3 字符串连接
      • 4.5 循环
        • 4.5.1 while 循环
        • 4.5.2 for 循环
        • 4.5.3 repeat...until循环
        • 4.5.4 循环控制语句
        • 4.6 函数
        • 4.7 流程控制
          • 4.7.1 if 语句
          • 4.7.2 if...else 语句
          • 4.8 逻辑运算符

            Lua语法基本使用,23,第3张

            一、Lua简介

            官网:https://www.lua.org

            Lua 教程 | 菜鸟教程:https://www.runoob.com/lua/lua-tutorial.html

            LuatOS 文档:https://wiki.luatos.com/

            LuatOS 在线模拟 - lua在线测试 :https://wiki.luatos.com/_static/luatos-emulator/lua.html

            Lua 是一种轻量小巧的脚本语言,用标准 C 语言编写并以源代码形式开放,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua作为一种脚本语言(解释型语言),号称性能最高的脚本,被广泛应用在很多需要性能的地方,比如nginx,游戏脚本,OpenResty等等。在我的项目agent中,使用lua脚本实现了任务处理逻辑。任务执行器在接收到任务时选择对应的lua脚本执行任务,与执行器进行解耦,同时支持热更新。

            Lua语法基本使用,在这里插入图片描述,第4张

            二、Lua安装

            Lua语法基本使用,在这里插入图片描述,第5张


            Lua语法基本使用,在这里插入图片描述,第6张

            Lua的安装非常简单,如果是Linux系统,则将make all test替换掉make linux test

            curl -R -O http://www.lua.org/ftp/lua-5.3.5.tar.gz
            tar zxf lua-5.3.5.tar.gz
            cd lua-5.3.5
            make linux test
            

            2.1 Hello World 入门

            1. 新建hello.lua文件

            2. 在其中添加 print(“Hello World”)

              Lua语法基本使用,在这里插入图片描述,第7张

            3. 运行 lua hello.lua

              测试成功

              Lua语法基本使用,在这里插入图片描述,第8张

            三、数据类型

            数据类型描述说明
            nil这个最简单,只有值nil属于该类,表示一个无效值(在条件表达式中相当于false)。nil 作比较时应该加上双引号
            boolean包含两个值:false和true。Lua 把 false 和 nil 看作是"假",其他的都为"真"
            number表示双精度类型的实浮点数
            string字符串由一对双引号或单引号来表示也可以用 2 个方括号 “[[]]” 来表示"一块"字符串。使用 # 来计算字符串的长度
            function由 C 或 Lua 编写的函数
            tableLua 中的表(table)其实是一个"关联数组"(associative arrays),数组的索引可以是数字或者是字符串。在 Lua 里,table 的创建是通过"构造表达式"来完成,最简单构造表达式是{},用来创建一个空表。

            可以使用type函数测试给定变量或者值的类型。

            Lua语法基本使用,在这里插入图片描述,第9张

            nil

            nil 类型表示空值,给全局变量赋值 nil 等同于把它们删除。

            nil 作比较时应该加上引号:

            if (type(nil)==nil) then
                print(true)
            else
                print(false)
            end
            if (type(nil)=="nil") then
                print(true)
            else
                print(false)
            end
            

            输出:

            false
            true
            

            四、基本语法

            4.1 注释

            两个减号是单行注释: --注释

            多行注释 --[[ 注释 --]]

            4.2 交互式编程

            Lua 交互式编程模式可以通过命令 lua -i 或 lua 来启用:

            lua -i
            Lua 5.4.6  Copyright (C) 1994-2023 Lua.org, PUC-Rio
            

            4.3 字符串连接

            可以使用操作符…(两个点)

            print("hello".."world")
            

            循环变量

            -- 字符串
            local str = 'Hello'
            -- 数字
            local num = 21
            -- 布尔类型
            local flag = true
            -- 数组
            local arr = {'java','python','lua'}
            -- table 
            local map = {name = 'Jack',age = 12}
            

            访问

            --访问数组  ,lua数组的角标从1开始
            print(arr[1])
            -- 访问 table
            print(map['name'])
            print(map.name)
            

            4.5 循环

            4.5.1 while 循环

            local a = 10
            while (a < 20)
            do
                print("value of a:", a)
                a = a + 1
            end
            

            输出:

            value of a:     10
            value of a:     11
            value of a:     12
            value of a:     13
            value of a:     14
            value of a:     15
            value of a:     16
            value of a:     17
            value of a:     18
            value of a:     19
            

            4.5.2 for 循环

            数值for循环

            for var=exp1,exp2,exp3 do  
                <执行体>  
            end
            

            var 从 exp1 变化到 exp2,每次变化以 exp3 为步长递增,并执行一次 “执行体”。exp3 是可选的,如果不指定,默认为1。

            for i = 10, 1, -1 do
                print(i)
            end
            

            输出

            10
            9
            8
            7
            6
            5
            4
            3
            2
            1
            

            遍历数组

            local arr = {'java','python','lua'}
            --遍历数组
            for index,value in ipairs(arr) do 
            	print(index,value)
            end
            

            遍历table

            local map = {name = 'Jack',age = 12}
            --遍历table
            for key ,value in pairs(map) do
            	print(index,value)
            end
            

            4.5.3 repeat…until循环

            先执行循环体的语句,再进行条件判断,如果条件为 flase 则继续执行循环体,否则跳出循环。

            repeat
               statements
            until( condition )
            
            local a = 10
            repeat
                print("value of a:", a)
                a = a + 1
            until (a > 15)
            

            输出

            value of a:     10
            value of a:     11
            value of a:     12
            value of a:     13
            value of a:     14
            value of a:     15
            

            4.5.4 循环控制语句

            break语句

            执行到 break 处会跳出循环。

            local a = 10
            while(a < 20)
            do
                print("value of a:", a)
                a = a + 1
                if(a > 15) then
                    break
                end
            end
            

            4.6 函数

            local function factorial1(n)
                if n == 0 then
                    return 1
                else
                    return n * factorial1(n - 1)
                end
            end
            print(factorial1(5))
            local factorial2 = factorial1
            print(factorial2(5))
            

            输出

            120
            120
            

            可变参数

            Lua 函数可以接受可变数目的参数,和 C 语言类似,在函数参数列表中使用三点 … 表示函数有可变的参数。

            local function add(...)
                local s = 0
                for i, v in ipairs { ... } do --> {...} 表示一个由所有变长参数构成的数组
                    s = s + v
                end
                return s
            end
            print(add(3, 4, 5, 6, 7)) --> 25
            

            内置函数

            Lua 也有很多内置函数,我们可以通过官方手册进行查询:https://www.lua.org/manual/5.4/

            Lua语法基本使用,在这里插入图片描述,第10张

            4.7 流程控制

            4.7.1 if 语句

            --[ 定义变量 --]
            local a = 10;
            --[ 使用 if 语句 --]
            if (a < 20)
            then
                --[ if 条件为 true 时打印以下信息 --]
                print("a 小于 20");
            end
            print("a 的值为:", a);
            

            输出

            a 小于 20
            a 的值为:       10
            

            4.7.2 if…else 语句

            --[ 定义变量 --]
            local a = 100;
            --[ 检查条件 --]
            if (a < 20)
            then
                --[ if 条件为 true 时执行该语句块 --]
                print("a 小于 20")
            else
                --[ if 条件为 false 时执行该语句块 --]
                print("a 大于 20")
            end
            print("a 的值为 :", a)
            

            输出

            a 大于 20
            a 的值为 :      100
            

            4.8 逻辑运算符

            设定 A 的值为 true,B 的值为 false

            操作符描述实例
            and 逻辑与操作符。 若 A 为 false,则返回 A,否则返回 B。(A and B) 为 false。
            or逻辑或操作符。 若 A 为 true,则返回 A,否则返回 B。(A or B) 为 true。
            not逻辑非操作符。与逻辑运算结果相反,如果条件为 true,逻辑非为 false。not(A and B) 为 true。

            Lua语法基本使用,在这里插入图片描述,第1张Lua语法基本使用,在这里插入图片描述,第12张

网友评论

搜索
最新文章
热门文章
热门标签
 
 女人梦见被老虎追赶而躲藏  女人梦见迷路了还向人问路  梦见狗咬自己把狗打死是什么预兆