欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 手游 > Lua语法基础全面剖析(上篇)

Lua语法基础全面剖析(上篇)

2024/10/25 15:27:51 来源:https://blog.csdn.net/yangliu123456_/article/details/143232303  浏览:    关键词:Lua语法基础全面剖析(上篇)

今天我们来进行Lua语法全面剖析。

由于篇幅过长,将分为上中下三篇进行讲解,本篇为上篇。

1.初识Lua

Lua 是一种轻量小巧的脚本语言,它用标准C语言编写并以源代码形式开放。这意味着什么呢?这意味着Lua虚拟机可以很方便的嵌入别的程序里,从而为应用程序提供灵活的扩展和定制功能。而整个Lua虚拟机编译后仅仅一百余K,经过适当的裁剪还能做到更小,十分适合嵌入式的开发。

同时,在目前脚本引擎中,Lua的运行速度占有绝对优势。这些都决定了Lua是作为嵌入式脚本的最佳选择。

在我们编写代码之前,需要做一下准备,就是:确保你输入标点符号时,用的不是中文输入法

2.第一个Lua程序

几乎所有语言的第一行代码,都是输出hello world,本教程也不意外。

Lua中,打印结果只需要使用print这个函数即可。同时,如果需要使用函数,只需要在函数名后加上双括号,同时传入你想传入的值即可。

所以,我们来执行下面的代码,打印出hello world吧!


print("hello world!")

3.输出数据

上一部分,我们知道了,在Lua中,可以使用print函数来打印你想要得到的结果。

并且还知道了,函数是指可以实现某些功能的子程序,可以使用函数名(参数)来执行。

让我们试着输出一些其他东西吧!使用多个print函数,输出自己想输出的数据。


print("测试")print("aabcdefg")print("xxxxx","第二个参数","第三个参数")

4.代码注释

代码注释就是在代码里,不会运行的部分。注释完全不会被运行。

这部分是为了在查看代码时,可以更好地立即现有代码含义用的。

我们可以用--开头,来写一段单行注释

也可以用--[[开头,]]结尾,写一段多行注释。

下面是注释的例子:


print("这段代码会运行")--print("我被注释掉了,所以不会运行")--[[我是多行注释不管我写多少行都不会影响代码运行]]

5.变量

5.1 number变量

变量,可以看作是一个桶,在里面装你想要装的内容。这些内容可以是Lua包含的所有合法类型。

例如:我想要新建一个桶,名叫bucket,在里面放入233这个数字,就可以像下面一样:


bucket = 233

让我们试着自己新建几个变量吧!

  • 新建变量year,并将变量的值设置为1926

  • 新建变量month,并将变量的值设置为8

  • 新建变量day,并将变量的值设置为7


--新建三个变量,并赋值year = 1926month = 8day = 7--打印出三个变量的值print(year,month,day)

5.2 了解nil

nil类型表示没有任何有效值,只要是没有声明的值,它就是nil

比如我打印一个没有声明的值,便会输出nil:


ccc = 233print(ccc)print(aaa)

这里需要你思考一下,运行以下代码,将会输出什么结果?


a =1b = '2'c = aprint(a,b,c,d)

5.3 赋值语句

赋值是改变一个变量值的最基本的方法。

如下面一样,使用等号对左边的变量进行赋值


n = 2n = 3n = n + 1b = n

Lua可以对多个变量同时赋值,变量用逗号分开,赋值语句右边的值会依次赋给左边的变量。


n = 1a, b = 10, 2*n

当左右值的数量不一致时,Lua会进行下面的设定:

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

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

下面的例子可以展示这种设定:


a, b, c = 0, 1print(a,b,c)--输出0   1   nila, b = a+1, b+1, b+2print(a,b)--输出1   2a, b, c = 0print(a,b,c)--输出0   nil   nil

这里需要你思考一下,运行以下代码,将会输出什么结果?


a,b,c = 1,2,3a,c = a+1,bd = c,bprint(a,b,c,d)

5.4 交换变量

这部分需要你自己完成一个任务:

已知下面的代码,并且已知ab的值,请在交换他们的值,使打印输出12 34


a = 34b = 12--你需要在这里进行交换变量的操作--提示:新建一个变量来存放临时的值print(a,b)

5.5 输出变量

我们已经知道了,在Lua中,可以使用print函数来打印你想要得到的结果。

同时在上一节,我们学会了新建变量和设置变量的值。

让我们试着输出某个变量吧!使用print函数,输出已知变量。 我们已知变量num为某个数字,试着输出它的值吧!


num = 123--请补全代码,输出num的值print(你要在这里填东西)

5.6 算数运算符

运算符是一个特殊的符号,用于告诉解释器执行特定的数学或逻辑运算。

上一节中,新建的数字变量,我们称之为number类型的变量。

本节我们来学习使用算术运算符,如下所示:


+ 加法- 减法* 乘法/ 除法% 取余,求出除法的余数^ 乘幂,计算次方- 负号,取负值

我们可以通过以下实例来理解算术运算符的应用:


a = 21b = 10c = a + bprint('a + b 的值为 ', c )c = a - bprint('a - b 的值为 ', c )c = a * bprint('a * b 的值为 ', c )c = a / bprint('a / b 的值为 ', c )c = a % bprint('a % b 的值为 ', c )c = a^2print('a^2 的值为 ', c )c = -aprint('-a 的值为 ', c )c = a * (b - a)print('a * (b - a) 的值为 ', c )

你需要完成下面的任务:

已知,一个长方体的长宽高分别为a、b、c(单位米),且这个物体重量为m(单位克)

请打印出物体的密度(单位g/m³)

注:密度计算公式 密度 = 质量 / 体积


a,b,c = 1,2,3 --长宽高m = 10        --重量--请打印出物体的密度

关注博主,陆续发布中下篇

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com