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

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        --重量--请打印出物体的密度

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


http://www.mrgr.cn/news/58371.html

相关文章:

  • 前端学习---(5)js基础--3
  • TypeScript 知识点全解析(总括):从入门到精通
  • 协议 HTTP
  • 明达云:赋能化工园区,智绘安全高效新蓝图
  • 甲骨文API自动开机器程序
  • 天地图实现海量聚合marker--uniapp后端详细实现
  • 【算法】超快理解冒泡排序(含c#、c++、java、python代码)
  • BLIP2部署教程
  • Python突破浏览器TLS/JA3 指纹
  • BestMan:具有统一仿真硬件 API 的模块化移动机械手平台,用于具身 AI
  • 深入解析Java中的锁
  • 【漏洞复现】金和OA_jc6_ntko-upload任意文件上传漏洞.md
  • 制作视频费时费力?在这里只要简单几步就够了
  • 深入拆解TomcatJetty——Tomcat生命周期与多层容器
  • 【设备状态与人员动态的监测和呈现-会议签到的补充】
  • 智慧商城项目4-购物车功能
  • Django配置路由后,为什么输入http://127.0.0.1:8000/ 网址后报错了?
  • 【逆向基础】十七、PE文件格式(二)
  • 16 使用宏定义定义常量
  • OFFER攻略 08| 130+个offer背后:AIGC产品经理成长之路,零基础入门到精通,收藏这一篇就够了
  • 汇编教程 最终:文件管理与内存管理
  • Jvm中的堆和栈
  • Docker容器的基础镜像:构建现代应用程序的基石
  • 讲一讲AOP的原理,AOP在哪些场景下会失效?
  • openresty安装
  • Ubuntu 下安装 Nginx