当前位置: 首页 > news >正文

Lua语言变量、函数、运算符、循环

变量

先声明,后使用。

三种类型:全局变量(默认),局部变量(作用范围:从声明开始,到所在的语句块结束),表中的 域

-- test vara = 5;local b = 5function testInit()c = 6;local d = 7endtestInit();b = 9doc = 8endd = "u"print(a,b,c,d)

变量赋值

a = 变量值。

a,b = 1,2

a = 1+2

常用:x , y = y, x a,b,c = 1,2

变量个数 > 值的个数:按照变量的个数 补足 nil。

a,b,c = 1,2,3,4

变量个数<值的个数:多余的值会被忽略。

a,b,c = 0

a = 0,b = nil, c=nil

多变量赋值:还可以用于函数的返回, 参数值互换。 a,b = func();

需要赋值给变量,如果能用局部变量,尽量用局部变量。

索引

对table中元素的访问。

tab["key"] tab.keyprint("-----------索引--------------") tab = {key1 = "中国",key2 = "美国"} print(tab["key1"])print(tab.key2)

循环

用途:做一些有规律的重复操作。

循环体 :一组被重复执行的语句。循环条件 :判断能否继续循环。

while循环

while(循环条件) do

业务代码;

对循环条件的控制; end

a = 1

while(a<5) do

print(a)

a = a+1 end

for循环

数值for循环:for var=exp1,exp2,exp3 do 循环体endvar的值,从exp1一直到exp2,步长是exp3(是可选的,默认是1)print("----for----")for i=1,10,2 doprint(i)endexp1,exp2,exp3 只在循环开始前计算一次。泛型for循环:是通过迭代器进行的。a = {"one","two","three"}for k,v in pairs(a) do print(v)end

repeat until

repeat

循环体

until(条件)

先执行循环体,直到满足条件。如果条件为false,继续执行循环体,如果条件为true,则跳出循 环。

流程控制

if()

print("-----------if-------------") a = 1

if(a == 1) then

print(a.."是1")

end

0 是 true。

函数

函数定义

print()功能:1。完成指定的任务。2。计算并返回值(可以返回多个值)。 函数的范围(local ,缺省)function 函数名称(参数列表)函数体;return 结果 end定义一个函数:实现求两个数的最大值。print("---------------函数定义:求最大值---------------") function testMax(num1,num2)if (num1 > num2) thenresult = num1; elseresult = num2; endreturn result; endprint("15,20中的最大值是:"..testMax(15,20))函数可以作为参数进行传递。例子:自定义打印函数。print("---------------函数定义:自定义打印函数---------------")myPrint = function(p)print("重新的打印函数:",p) end;myPrint("test");function add(num1,num2,myPrintParam)result = num1 + num2;myPrintParam(result); endadd(2,3,myPrint)

多值返回

​
print("---------------多值返回---------------")startIndex,endIndex = string.find("www.mashibing.com","ma") print(startIndex , endIndex)例子:找出一个数组中,最大的值,以及它的索引。print("---------------找出数组中,最大的值,以及索引---------------") function testMax(a)local iIndex = 1;local iValue = a[iIndex];for i,v in pairs(a) doif v > iValue theniIndex = i;iValue = v;endendreturn '最大值的索引:'..iIndex  ,  '最大值是:'..iValue endprint(testMax({1,4,8,2,7,10,6,3}))​

可变参数

运算符

算术运算符

+ 

- 

* 

/ 

% 取余 ^ 乘幂 - 负号

关系运算符

== 等于。

~=不等于

> 大于

< 小于

>= 大于等于 <= 小于等于

逻辑运算符

and or

not

其他运算符

.. 连接符

# 计算字符串或者 表 的长度。

http://www.lryc.cn/news/615698.html

相关文章:

  • 【RocketMQ 生产者和消费者】- ConsumeMessageOrderlyService 顺序消费消息
  • 在windows安装colmap并在cmd调用
  • vue3前端项目cursor rule
  • 常用hook钩子函数
  • 海关 瑞数 失信企业 逆向 分析 后缀 rs
  • 从神经网络语言模型(NNLM)到Word2Vec:自然语言处理中的词向量学习
  • 【Html网页模板】炫酷科技风公司首页
  • Axure设计下的智慧社区数据可视化大屏:科技赋能社区管理
  • [0CTF 2016]piapiapia
  • PhotoDirector 安卓版:功能强大的照片编辑与美化应用
  • Dify集成 Echarts 实现智能数据报表集成与展示实战详解
  • 复杂项目即时通讯从android 5升级android x后遗症之解决 ANR: Input dispatching timed out 问题 -优雅草卓伊凡
  • 咪咕MGV3200-KLH_GK6323V100C_板号E503744_安卓9_短接强刷包-可救砖
  • WebAssembly技术详解:从浏览器到云原生的高性能革命
  • Flutter 与 Android NDK 集成实战:实现高性能原生功能
  • Vue3 组件化开发
  • Solana上Launchpad混战:新颖性应被重视
  • 一个“加锁无效“的诡异现象
  • BGP 笔记
  • Python 中的 Mixin
  • 第4章 程序段的反复执行2 while语句P128练习题(题及答案)
  • 【动态数据源】⭐️@DS注解实现项目中多数据源的配置
  • Datawhale AI夏令营第三期,多模态RAG方向 Task2
  • 深度学习入门Day8:生成模型革命——从GAN到扩散模型
  • pytorch llm 计算flops和参数量
  • Busybox编译、制作initramfs,并在QEMU中运行
  • 束搜索(Beam Search):原理、演进与挑战
  • Java -- 日期类-第一代-第二代-第三代日期
  • NLP:Transformer输出部分
  • 第十九天-输入捕获实验