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

lua基本使用

全局变量局部变量

  • 全局变量是在全局作用域中定义的变量,可以在脚本的任何地方访问。
  • 全局变量在定义时不需要使用关键字,直接赋值即可。
lua 复制代码
xiaoman = 'xmzs'

print(xiaoman)
  • 局部变量是在特定作用域内定义的变量,只能在其所属的作用域内部访问。
  • 局部变量的作用域通常是函数体内部,也可以在代码块(使用 do...end)中创建局部变量。
  • 在局部作用域中,可以通过简单的赋值语句定义局部变量。
lua 复制代码
--local 定义局部变量
local xiaoman = 'xmzs'

print(xiaoman)

条件语句

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

lua 复制代码
local xiaoman = 'xmzs'

if xiaoman == "xmzs" then
    print("xiaoman")
elseif xiaoman == "xmzs1" then
    print("xiaoman1")
else
    print("not xiaoman")
end

函数

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

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

常用数据类型用法

lua 复制代码
type = false --布尔值
type = nil --就是null
type = 1 --整数
type = 1.1 --浮点型
type = 'xmzs' --字符串
print(type)

字符串拼接 ..

lua 复制代码
local s = 'xm'
local m = 'zs'
print(s .. m)

table 可以描述 对象和数组

lua索引从1开始

lua 复制代码
--对象
table = {
    name = "xiaoman",
    age = 18
}
print(table.name)
print(table.age)
--数组
arr = {1,2,3,4,6}
print(arr[1])

循环

lua 复制代码
for i = 1, 10, 3 do --开始 结束 步长  步长就是递增数量
    print(i)
end

循环table

lua 复制代码
arr = {name = "hello", age = 18, sex = "male"}
for k, v in pairs(arr) do
    print(k, v)  --key 和 value 也就是 name 和 hello ...
end

循环数组

lua 复制代码
local arr = {10,20,30}

for i, v in ipairs(arr) do
    print(i,v)
end

模块化

test.lua 暴露一个方法add

lua 复制代码
local M = {}

function M.add(a, b)
    return a + b
end

return M

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

lua 复制代码
local math = require('test')

local r = math.add(1, 2)

print(r)
相关推荐
小兵张健10 小时前
价值1000的 AI 工作流:Codex 通用前端协作模式
前端·aigc·ai编程
sunny_10 小时前
面试踩大坑!同一段 Node.js 代码,CJS 和 ESM 的执行顺序居然是反的?!99% 的人都答错了
前端·面试·node.js
拉不动的猪10 小时前
移动端调试工具VConsole初始化时的加载阻塞问题
前端·javascript·微信小程序
ayqy贾杰12 小时前
Agent First Engineering
前端·vue.js·面试
IT_陈寒12 小时前
SpringBoot实战:5个让你的API性能翻倍的隐藏技巧
前端·人工智能·后端
iceiceiceice13 小时前
iOS PDF阅读器段评实现:如何从 PDFSelection 精准还原一个自然段
前端·人工智能·ios
大金乄13 小时前
封装一个vue2的elementUI 表格组件(包含表格编辑以及多级表头)
前端·javascript
葡萄城技术团队14 小时前
【性能优化篇】面对万行数据也不卡顿?揭秘协同服务器的“片段机制 (Fragments)”
前端
程序员阿峰14 小时前
2026前端必备:TensorFlow.js,浏览器里的AI引擎,不写Python也能玩转智能
前端
Jans14 小时前
Shipfe — Rust 写的前端静态部署工具:一条命令上线 + 零停机 + 可回滚 + 自动清理
前端