Lua 学习

参照

注释

 --  这是单行注释
 --[[这是多行注释--]]

if语句

if true thenprint(true)
end

if else语句

nil是false

if nil thenprint("nil被当作true处理")
elseprint("nil被当作false处理")
end

运算符

% 取余
^ 乘幂 A=10,A^2=100
// 整除运算符(>=lua5.3)

~= 不等于
and 与
or 或
not 逻辑非 A=true,B=false -》 not(A and B) 则为true

字符串

单行

string1 = "this is string1"
string2 = 'this is string2'

字符串多行
2 个方括号 “[[]]” 来表示"一块"字符串

html = [[
<html>
<head></head>
<body><a href="http://www.runoob.com/">菜鸟教程</a>
</body>
</html>
]]

字符串连接使用…,而不是+,+在lua里是运算符

print("2".."6")    --输出为26
print("2"+"6")    --输出为8  +号会尝试将字符串转为number再进行运算
print("2"+"6a")    --输出会报异常

使用 # 来计算字符串的长度,放在字符串前面

len = "www.runoob.com"
print(#len)  --输出为14
print(#"siki学院") --输出为8  一个中文字符占两个长度 

循环 while

while(true)
doprint("循环将永远执行下去")
end

表 table

1.类似c#的字典用法

tab1={} --空表  {}构造表达式
print(tab1)  --table:00A89600   输出的是存储地址
print(tab1.key1)  --niltab2={key1=100,key2=“value2”} --初始化一张表 
print(tab2.key1) --100
print(tab2["key1"]) --100--table的数据添加  table不会固定长度大小
tab1.key1="www.sikiedu.com"
tab1["key2"]="siki"
tab1[10]=1000print(tab1["key1"]) --输出www.sikiedu.com
print(tab1.key1) --输出www.sikiedu.com
print(tab1.key2) --输出siki
print(tan1[10]) --输出1000

2.类型c#的数组写法
lua使用索引的地方是从1开始,而不是0

tab3={"apple","pear","orange","grape"} --默认key为1,2,3,4
print(tab3[2])  --输出pear lua的索引从1开始,而不是0

函数 function

c#里的函数(阶乘)

int fact(int n){if(n==1)return n;elsereturn n*fact(n-1);
}

lua函数写法 function开始,end结束

function fact(n)if n==1return n;elsereturn n*fact(n-1);end
endprint(fact(3)); --输出6
fact2=fact; --把函数fact赋给fact2
print(fact2(3)); --输出6

把函数作为参数传递(类似c#的委托,但lua没有委托)

function testFun(tab fun)for k,v in pairs(tab) dofun(k,v)end
endtab={key1="val1",key2="val2"}function f1(k,v)print(k..":"..v)
endtestFun(tab,f1)  --输出 key1:val1  key2:val2function f2(k,v)print(k.." "..v)
endtestFun(tab,f2) --输出 key1 val1    key2 val2--匿名函数 (不用写函数名)
--输出 key1-val1   key2-val2
testFun(tab,
function (k,v)print(k.."-"..v)
end
)

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

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

相关文章

【 JS 】闭包

“在黑暗的时刻&#xff0c;不要忘记你内心的光芒&#xff0c;它将指引你找到前进的方向&#xff0c;迈向胜利的辉煌。” 定义 MDN 对闭包的定义为&#xff1a; 闭包是指那些能够访问自由变量的函数。 那什么是自由变量呢&#xff1f; 自由变量是指在函数中使用的&#xff0c;…

linux系统docker容器的容器卷

容器卷 容器卷宿主机和容器之间映射添加容器卷读写规则映射添加卷的继承和共享 容器卷 挂载容器卷加上--privileged参数避免权限原因报错 --privilegedturn //开启权限Docker挂载主机目录访问如果出现cannot open directory .: Permission denied 解决办法&#xf…

【MySQL 系列】MySQL 语句篇_DDL 语句

DDL&#xff08; Data Definition Language&#xff0c;数据定义语言&#xff09;用在定义或改变表的结构数据类型、表之间的链接和约束等初始化工作上。常用的语句关键字包括 CREATE、 DROP、 ALTER 等。 文章目录 1、MySQL 中的 DQL 语句2、MySQL 中库表的 DQL 语句详解2.1、…

【大数据面试题】014 Flink CDC 用过吗,请简要描述

一步一个脚印&#xff0c;一天一道面试题。 完成比完美更重要&#xff0c;明天更新完&#xff01; Flink CDC 的诞生背景 Flink CDC 的全称是 Change Data Capture&#xff08;变更数据捕获&#xff09; 每一项技术的诞生都是为了解决某个问题&#xff0c;某个痛点。而 Flink…

【算法与数据结构】深入解析二叉树(二)之堆结构实现

文章目录 &#x1f4dd;二叉树的顺序结构及实现&#x1f320; 二叉树的顺序结构&#x1f320; 堆的实现&#x1f320; 堆的实现&#x1f309;堆向下调整算法&#x1f309;堆的创建&#x1f309;建堆时间复杂度&#x1f309;堆的插入&#x1f309;堆的删除 &#x1f320;堆向上调…

mysql判断指定字符串在字符串中是否存在

相关函数有&#xff1a;locate、FIND_IN_SET。这两者都可以用来在字符串中查找子串&#xff0c;均为两个参数。 LOCATE&#xff1a;主要是针对普通的字符串查找&#xff0c;参数1在参数2中是否存在&#xff0c;若存在则返回首次出现的索引位置&#xff08;第一个位置索引为1&am…

详细分析Java中Stream流和for循环的差异之处

目录 前言1. 基本知识2. Demo 前言 事情起因是遍历大数据的时候&#xff0c;数据卡顿很严重 对于Java的基本知识推荐阅读&#xff1a;java框架 零基础从入门到精通的学习路线 附开源项目面经等&#xff08;超全&#xff09; 1. 基本知识 在Java中&#xff0c;Stream API提供…

dockers拉取MySQL及Redis并挂载文件

目录 一 . MySQL拉取 1、进入 MySQL 容器内部。 2、登录 MySQL。 3、修改远程连接 4、刷新 二 . Redis拉取 1 . redis/conf中新建文件redis.conf&#xff0c;内容如下&#xff1a; 2 . 容器运行 一 . MySQL拉取 docker run -d --restartalways --name mysql \ -v /…

hive逗号分割行列转换

select * from ( select back_receipt_nos,order_no,reject_no from ods_one.ods_us_wms_reject_order_match_all_d where order_no 10150501385980001 ) t1 lateral view explode(split(t1.back_receipt_nos, ,)) t as back_receipt_no where 1 1;

19 OpenCV 霍夫曼变换检测圆

文章目录 cv::HoughCircles算子参数示例 cv::HoughCircles 因为霍夫圆检测对噪声比较敏感&#xff0c;所以首先要对图像做中值滤波。 基于效率考虑&#xff0c;Opencv中实现的霍夫变换圆检测是基于图像梯度的实现&#xff0c;分为两步&#xff1a; 检测边缘&#xff0c;发现可能…

2024年AI辅助研发趋势深度解析:科技革新与效率提升的双重奏

随着人工智能技术的迅猛发展&#xff0c;AI辅助研发正逐渐成为科技界和工业界的热门话题。特别是在2024年&#xff0c;这一趋势将更加明显&#xff0c;AI辅助研发将在各个领域展现出强大的潜力和应用价值。 首先&#xff0c;AI辅助研发将进一步提升研发效率。传统的研发模式往…

Day43-2-企业级实时复制intofy介绍及实践

Day43-2-企业级实时复制intofy介绍及实践 1. 企业级备份方案介绍1.1 利用定时方式&#xff0c;实现周期备份重要数据信息。1.2 实时数据备份方案1.3 实时复制环境准备1.4 实时复制软件介绍1.5 实时复制inotify机制介绍1.6 项目部署实施1.6.1 部署环境准备1.6.2 检查Linux系统支…

中电金信:技术实践|Flink维度表关联方案解析

导语&#xff1a;Flink是一个对有界和无界数据流进行状态计算的分布式处理引擎和框架&#xff0c;主要用来处理流式数据。它既可以处理有界的批量数据集&#xff0c;也可以处理无界的实时流数据&#xff0c;为批处理和流处理提供了统一编程模型。 维度表可以看作是用户来分析数…

JavaScript进阶:js的一些学习笔记-this指向,call,apply,bind,防抖,节流

文章目录 1. this指向1. 箭头函数 this的指向 2. 改变this的指向1. call()2. apply()3. bind() 3. 防抖和节流1. 防抖2. 节流 1. this指向 1. 箭头函数 this的指向 箭头函数默认帮我们绑定外层this的值&#xff0c;所以在箭头函数中this的值和外层的this是一样的箭头函数中的…

Pytorch nn.Module

一、torch.nn简介 torch.nn是 PyTorch 中用于构建神经网络的模块。它提供了一系列的类和函数&#xff0c;用于定义神经网络的各种层、损失函数、优化器等。 torch.nn提供的类&#xff1a; Module: 所有神经网络模型的基类&#xff0c;用于定义自定义神经网络模型。Linear: 线…

Spring-1

目录 概念 优点 Autowired和Resource关键字 相同点 不同点 依赖注入的三种方式 概念 Spring 是个java企业级应用的开源开发框架。Spring主要用来开发Java应用&#xff0c;但是有些扩展是针对构建J2EE&#xff08;Java平台企业版&#xff09;平台的web应用。Spring 框架目…

前端算法 - 面试记录

1. 实现两个字符串相加&#xff08;不能直接转成数字使用加法运算&#xff0c;因为js精度规定不能超出一定长度&#xff09; 现场写法完善&#xff1a; function addStr(a, b) {let res let j 0const add (x, y) > {let numif (x y > 10) {num x y j - 10j 1}e…

AI推介-多模态视觉语言模型VLMs论文速览(arXiv方向):2024.03.10-2024.03.15

论文目录~ 1.3D-VLA: A 3D Vision-Language-Action Generative World Model2.PosSAM: Panoptic Open-vocabulary Segment Anything3.Anomaly Detection by Adapting a pre-trained Vision Language Model4.Introducing Routing Functions to Vision-Language Parameter-Efficie…

java-ssm-jsp-基于java的客户管理系统的设计与实现

java-ssm-jsp-基于java的客户管理系统的设计与实现 获取源码——》公主号&#xff1a;计算机专业毕设大全

自习室预订系统|基于springboot框架+ Mysql+Java+B/S架构的自习室预订系统设计与实现(可运行源码+数据库+设计文档+部署说明)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 目录 前台功能效果图 学生功能模块 管理员功能登录前台功能效果图 系统功能设计 数据库E-R图设计 lunwen参…