• Nodejs 第五十章(lua的基本使用)


    image.png

    lua基本使用

    全局变量局部变量

    • 全局变量是在全局作用域中定义的变量,可以在脚本的任何地方访问。
    • 全局变量在定义时不需要使用关键字,直接赋值即可。
    xiaoman = 'xmzs'
    
    print(xiaoman)
    
    • 1
    • 2
    • 3
    • 局部变量是在特定作用域内定义的变量,只能在其所属的作用域内部访问。
    • 局部变量的作用域通常是函数体内部,也可以在代码块(使用 do...end)中创建局部变量。
    • 在局部作用域中,可以通过简单的赋值语句定义局部变量。
    --local 定义局部变量
    local xiaoman = 'xmzs'
    
    print(xiaoman)
    
    • 1
    • 2
    • 3
    • 4

    条件语句

    在Lua中,条件判断语句可以使用 ifelseif 和 else 关键字来实现

    local xiaoman = 'xmzs'
    
    if xiaoman == "xmzs" then
        print("xiaoman")
    elseif xiaoman == "xmzs1" then
        print("xiaoman1")
    else
        print("not xiaoman")
    end
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    函数

    在Lua中,函数是一种可重复使用的代码块,用于执行特定的任务或操作

    local xiaoman = 'xmzs'
    
    function func(name)
        if name == "xmzs" then
            print("xiaoman")
            return 1
        elseif name == "xmzs1" then
            print("xiaoman1")
            return 2
        else
            print("not xiaoman")
            return 3
        end
    end
    
    local result = func(xiaoman)
    print(result)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    数据类型

    1. nil表示无效值或缺失值
    2. boolean表示布尔值,可以是 true 或 false
    3. number表示数字,包括整数和浮点数
    4. string表示字符串,由字符序列组成
    5. table表示表,一种关联数组,用于存储和组织数据
    6. function表示函数,用于封装可执行的代码块
    7. userdata:表示用户自定义数据类型,通常与C语言库交互使用。
    8. thread:表示协程,用于实现多线程编程。
    9. metatable:表示元表,用于定义表的行为。

    常用数据类型用法

    type = false --布尔值
    type = nil --就是null
    type = 1 --整数
    type = 1.1 --浮点型
    type = 'xmzs' --字符串
    print(type)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    字符串拼接 ..

    local s = 'xm'
    local m = 'zs'
    print(s .. m)
    
    
    • 1
    • 2
    • 3
    • 4

    table 可以描述 对象和数组

    lua索引从1开始

    --对象
    table = {
        name = "xiaoman",
        age = 18
    }
    print(table.name)
    print(table.age)
    --数组
    arr = {1,2,3,4,6}
    print(arr[1])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    循环

    for i = 1, 10, 3 do --开始 结束 步长  步长就是递增数量
        print(i)
    end
    
    • 1
    • 2
    • 3

    循环table

    arr = {name = "hello", age = 18, sex = "male"}
    for k, v in pairs(arr) do
        print(k, v)  --key 和 value 也就是 name 和 hello ...
    end
    
    • 1
    • 2
    • 3
    • 4

    循环数组

    local arr = {10,20,30}
    
    for i, v in ipairs(arr) do
        print(i,v)
    end
    
    • 1
    • 2
    • 3
    • 4
    • 5

    模块化

    test.lua 暴露一个方法add

    local M = {}
    
    function M.add(a, b)
        return a + b
    end
    
    return M
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    index.lua 引入该文件调用add方法

    local math = require('test')
    
    local r = math.add(1, 2)
    
    print(r)
    
    • 1
    • 2
    • 3
    • 4
    • 5
  • 相关阅读:
    十年技术进阶路,让我明白了三件要事(8000字长文)
    leetcode 35. 搜索插入位置
    [数学建模]---1.层次分析法matlab&python
    linux在非联网、无网络环境下,使用yumdownload、reportrack方法安装rpm包
    js数组遍历方法汇总
    MySQL常见面试题(一)
    Java基础---File类、文件过滤器、字节流
    组合式API_生命周期
    Audified U73b压缩器和U78饱和器发布升级版
    时间复杂度和空间复杂度
  • 原文地址:https://blog.csdn.net/qq1195566313/article/details/136492245