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

image.png

lua基本使用

全局变量局部变量

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

条件语句

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

local xiaoman = 'xmzs'if xiaoman == "xmzs" thenprint("xiaoman")
elseif xiaoman == "xmzs1" thenprint("xiaoman1")
elseprint("not xiaoman")
end

函数

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

local xiaoman = 'xmzs'function func(name)if name == "xmzs" thenprint("xiaoman")return 1elseif name == "xmzs1" thenprint("xiaoman1")return 2elseprint("not xiaoman")return 3end
endlocal result = func(xiaoman)
print(result)

数据类型

  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)

字符串拼接 ..

local s = 'xm'
local m = 'zs'
print(s .. m)

table 可以描述 对象和数组

lua索引从1开始

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

循环

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

循环table

arr = {name = "hello", age = 18, sex = "male"}
for k, v in pairs(arr) doprint(k, v)  --key 和 value 也就是 name 和 hello ...
end

循环数组

local arr = {10,20,30}for i, v in ipairs(arr) doprint(i,v)
end

模块化

test.lua 暴露一个方法add

local M = {}function M.add(a, b)return a + b
endreturn M

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

local math = require('test')local r = math.add(1, 2)print(r)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/722328.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Openfeign+Ribbon+Hystrix断路器(服务降级)

热部署对于Hystrix的热不是不是很明显 所以最好修改代码之后重启服务 简介 在微服务架构中存在多个可直接调用的服务,这些服务若在调用时出现故障会导致连锁效应,也就是可能让整个系统变得不可用,这种情况我们称之为服务雪崩效应. 服务雪崩效应通常发生在微服务架构中&…

LeetCode——回溯算法(Java)

回溯算法 简介[中等] 77. 组合[中等] 216. 组合总和 III[中等] 17. 电话号码的字母组合[中等] 39. 组合总和[中等] 40. 组合总和 II[中等] 131. 分割回文串[中等] 93. 复原 IP 地址[中等] 78. 子集[中等] 90. 子集 II[中等] 491. 非递减子序列[中等] 46. 全排列[中等] 47. 全排…

【学习笔记】Vue3源码解析:第二部分-实现响应式(4)

课程地址:【已完结】全网最详细Vue3源码解析!(一行行带你手写Vue3源码) 第二部分-实现响应式(4):(对应课程的第15-17节) 第15节:《处理数组修改或者新增》 …

Qt 使用QListView实现简约美观的聊天窗口

今天和大家分享一个使用QListView来展现聊天窗口的历史记录的例子, 因为聊天记录可能会有很多, 所以使用试图-模型的方式更加合理 这是最终效果: ChatHistoryModel继承自QAbstractListModel , ChatHistoryViewDelegate继承自QStyledItemDelegate, 这个例子最关键的就是在QSty…

【Java JVM】对象回收判断

Java 对象回收判断是程序设计中至关重要的一环。在面向对象的编程中, 合理的对象回收策略直接影响着程序的性能和内存利用效率。 因此, 深入了解和准确判断 Java 对象的回收时机, 不仅可以优化程序的运行性能, 还能有效避免内存泄漏和资源浪费。 本文将简单的分析一下 JVM 中对…

JRT缓存协议测试

JRT由DolerGet提供可信的缓存数据获取,在OMR修改和删除数据后会更新缓存的数据,这样的话本Web下通过DolerGet取的数据是可信的。在多个Web之间要保证缓存数据的可信度,需要同步修改的数据到其他Web,为此仿照了缓存协议的效果&…

MySQL的三大范式

文章目录 简介第一范式第二范式第三范式: 简介 在MySQL的使用中, 要根据实际灵活设计表,一般来说我们通常遵循三大范式(啥是范式:是一些约束、规范、规则, 来优化数据库表的设计和存储),三大范…

Stable Diffusion 模型分享:3D Animation Diffusion(3D动漫)

本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八 下载地址 模型介绍 3D Animation Diffusion 是 Lykon 大神的 3D 动漫模型。 作者述:在迪士尼、皮…

停止Tomcat服务的方式

运行脚本文件停止 运行Tomcat的bin目录中提供的停止服务的脚本文件 关闭命令 # sh方式 sh shutdown.sh# ./方式 ./shutdown.sh操作步骤 运行结束进程停止 查看Tomcat进程,获得进程id kill进程命令 # 执行命令结束进程 kill -9 65358 操作步骤 注意 kill命令是…

ffmpeg使用vaapi解码后的视频如何基于x11或EGL实现0-copy渲染?

技术背景 对于ffmpeg硬解码后渲染常见的做法是解码后通过av_hwframe_transfer_data方法将数据从GPU拷贝到CPU,然后做一些转换处理用opengl渲染,必然涉及到譬如类似glTexImage2D的函数将数据上传到GPU。而这样2次copy就会导致CPU的使用率变高&#xff0c…

智能物联时代下RFID技术在汽车零部件智能制造中的引领作用

RFID(Radio Frequency Identification,射频识别)技术在汽车零部件加工中有广泛的应用,其工作原理是通过无线电频率进行自动识别。在汽车零部件加工中,RFID技术可以发挥重要作用,提高生产效率、降低成本和减…

js形参传递特殊字符

在前端我们给其他页面传值或者传数据到后台的时候,字符串经常将一些特殊符号识别成字符集。这种情况下会将数据打断或者打乱,比如字符串里面包含*/&这些符号的时候就会错误。 我们可以通过将字符中的特殊字符替换成十六进制的字符,一些特…

【Linux从青铜到王者】进程信号

——————————————————————————————————————————— 信号入门 在了解信号之前有许多要理解的相关概念 我们可以先通过一个生活例子来初步认识一下信号 1.生活角度的信号 你在网上买了很多件商品,再等待不同商品快递的到来…

从事测绘地信,你需要这些插件、软件、小工具、图源...

特别声明,本篇是来自公众号GIS前沿的资源,看着比较好,特别给大家推荐。加粗样式 今天,我们又来汇总了一些工作中实用的插件、小工具、数据等等,小助手又来帮你提高工作效率了****。 因为小助手每年都会总结一次&…

15.Django总结

文章目录 1.Django创建项目的命令2.MVC,MVT的理解3.Django中间件的使用4.WSGI,uWSGI服务器 和 uwsgi协议5.nginx和uWISG 服务器之间如何配合工作的6.django开发中数据库做过什么优化7.Python中三大框架各自的应用场景8.django如何提升性能(高并发)9. 什么是restful api谈谈你的…

MySQL性能优化-数据库调优有哪些维度可以选择

数据库调优的目标 简单来说,数据库调优的目的就是要让数据库运行得更快,也就是说响应的时间更快,吞吐量更大。 不过随着用户量的不断增加,以及应用程序复杂度的提升,我们很难用“更快”去定义数据库调优的目标&#…

Stable Diffusion ———LDM、SD 1.0, 1.5, 2.0、SDXL、SDXL-Turbo等版本之间关系现原理详解

前言 2021年5月,OpenAI发表了《扩散模型超越GANs》的文章,标志着扩散模型(Diffusion Models,DM)在图像生成领域开始超越传统的GAN模型,进一步推动了DM的应用。 然而,早期的DM直接作用于像素空…

cmd模式下启动mysql

1.打开cmd输入services.msc,找到MYSQL,右击属性,找到可执行文件路径,加载到环境变量。 2.打开cmd,启动MYSQL:输入net start mysql; 3.登陆MYSQL,需要管理权限; 输入:my…

Docker容器化解决方案

什么是Docker? Docker是一个构建在LXC之上,基于进程容器的轻量级VM解决方案,实现了一种应用程序级别的资源隔离及配额。Docker起源于PaaS提供商dotCloud 基于go语言开发,遵从Apache2.0开源协议。 Docker 自开源后受到广泛的关注和…

数据链路层----滑动窗口协议的相关计算

目录 1.窗口大小的相关计算 •停等协议: •后退N帧协议: •选择重传协议: 2.信道利用率相关计算 •停等协议的信道利用率: •连续ARQ(后退N帧协议,选择重传协议)的信道利用率:…