【Lua】 Lua学习笔记(二)

零、相关文章

【Lua】 Lua学习笔记(一)

一、前言

哈喽大家好,我是 FEZ98 ,休息了几天,今天继续系统学习Lua。这个系列是我系统学习Lua语言的学习笔记,我会把遇到的一些比较值得记录与关注的知识写在里面,供自己以后进行回顾。

二、Lua 变量

(1)三种变量类型

Lua变量有三种类型:全局变量、局部变量*(local)、表中的域。
如果不用local 显示声明变量为局部变量,则Lua中的变量全是全局变量,哪怕是在语句块或是函数中。局部变量的作用域从变量声明位置至语句块结束位置。
变量的默认值为nil。

在这里插入图片描述

(2)赋值语句

Lua可以同时对多个变量进行赋值操作,变量与值之间需要用,隔开。
在这里插入图片描述
可以直接用多变量赋值的方法进行变量值得交换操作,与C#、 Java需要用temp变量作为交换容器的操作区别。
在这里插入图片描述
该操作对于数组与表类型同样适用。
在这里插入图片描述
下图中的a["t1"]a.t3为获取table的指定索引的值。
在这里插入图片描述

当赋值时,变量个数少于值个数,多余的值被忽略。
当赋值时,变量个数多于值个数,多余的变量默认赋值为nil。
在这里插入图片描述
多赋值经常用来交换变量,或者将函数调用返回给变量。
在这里插入图片描述

(3)索引

对table的索引适用方括号[]。Lua也提供了.操作。
在这里插入图片描述
采用索引访问的本质是类似gettable_event(t,i)的函数调用。

三、Lua 循环

(1)While 循环

Lua 中While循环语法:
在这里插入图片描述
流程图如下:
在这里插入图片描述

示例:
在这里插入图片描述

(2)for 循环

Lua 中for循环语法:
在这里插入图片描述
var从exp1变化到exp2,每次变化以exp3为步长递增var,并执行一次"执行体"。exp3可选,,如果不指定,默认为1。

Lua 中for 循环分为两大类:

1.数值for 循环
2.泛型for 循环

(2.1) 数值for 循环

for 循环的三个表达式在循环开始前一次性求值,之后不再进行求值,求值后结果将用在后面的循环中。
在这里插入图片描述
可以看到函数multipleFive(x)与setTwo(x)只在for 循环开始前执行一次。

实例2如下,for循环用于数组中:
在这里插入图片描述

(2.2) 泛型for 循环

Lua 中泛型for 循环的语法:
在这里插入图片描述
其通过一个迭代器函数来遍历所有值,类似C#与Java中的 foreach 语句。i是数组索引值,v是对应索引的数组元素值。ipairs是Lua提供的一个迭代器函数,用来迭代数组。
在这里插入图片描述

pairsipairs都可以遍历数组和表中的key 并返回key 与其对应的值
不同之处:
pairs:
返回按照数据定义或者插入的顺序返回
ipairs:

  1. ipairs 遍历的key只能是数字,并且数字是从1开始且连续的。
  2. ipairs 返回按照key 的升序返回。

下图是使用 pairs 对 字符串表进行泛型for 循环操作,结果正常显示:
在这里插入图片描述
下图是使用 ipairs 对 字符串表进行泛型for 循环操作,没有输出值:
在这里插入图片描述

(3)repeat…until 循环

repeat…until循环语法:
在这里插入图片描述
与while 和for 循环在执行前进行判断不同,repeat...until在当前循环语句结束后才进行条件判断。

repeat…until 循环流程图如下:
在这里插入图片描述
实例:
在这里插入图片描述

(4)Lua 循环嵌套

(4.1)While 循环嵌套:

Lua 中While循环嵌套语法:
在这里插入图片描述
实例:
在这里插入图片描述

(4.2)for 循环嵌套:

Lua 中for循环嵌套语法:
在这里插入图片描述
实例:
在这里插入图片描述

(4.3)repeat…until 循环嵌套:

Lua 中repeat...until循环嵌套语法:
在这里插入图片描述
实例:
在这里插入图片描述

(4.4) 混合循环嵌套:

Lua 可以混合用不同的循环类型来进行嵌套。
实例:
在这里插入图片描述

(5)循环控制语句

(5.1) break 语句

Lua 中的Break 语法:
在这里插入图片描述
如果使用循环嵌套,Break语句将停止最内层循环的执行,跳回执行外层的循环语句。

实例:
在这里插入图片描述

(5.2) goto 语句

Lua 中的goto 语法:
在这里插入图片描述
goto 语句将控制流程无条件地转移到被标记的语句处。

注意: goto的语法特性是在Lua 5.2 引入的,如果使用 Lua 5.1,则会报 unexpected symbol near ':' 的错误!!!
如何查看Lua 的版本:在cmd 中输入 'Lua -v'
在这里插入图片描述

如何升级Lua版本(目前最新版本:lua-5.4.6):
windows环境下编译安装

注意上面的这个教程里,省略了一些步骤,这里进行相应的一些补充:

1.此处红圈的文件夹是由从官网下载的lua文件解压两次的文件。
在这里插入图片描述

2.build.bat文件需要进行相应的修改,绿圈处改为你想要安装的位置,红圈处为步骤1中解压出来的lua 文件。
在这里插入图片描述
3.该步骤可省略,因为在build.bat 中已将lua 添加至环境变量中。
在这里插入图片描述

实例1:
在这里插入图片描述
实例2:
在这里插入图片描述
实例三(使用goto 实现 continue)
在这里插入图片描述

(6)无限循环

在循环体中如果条件永远为 true 循环语句就会永远执行下去。

实例:
在这里插入图片描述

引用
1.RUNOOB.COM

猜你喜欢

转载自blog.csdn.net/weixin_43057990/article/details/131805588
LUA