Bootstrap

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 = 1926

month = 8

day = 7

--打印出三个变量的值

print(year,month,day)

5.2 了解nil

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

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


ccc = 233

print(ccc)

print(aaa)

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


a =1

b = '2'

c = a

print(a,b,c,d)

5.3 赋值语句

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

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


n = 2

n = 3

n = n + 1

b = n

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


n = 1

a, b = 10, 2*n

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

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

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

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


a, b, c = 0, 1

print(a,b,c)

--输出0   1   nil

a, b = a+1, b+1, b+2

print(a,b)

--输出1   2

a, b, c = 0

print(a,b,c)

--输出0   nil   nil

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


a,b,c = 1,2,3

a,c = a+1,b

d = c,b

print(a,b,c,d)

5.4 交换变量

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

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


a = 34

b = 12

--你需要在这里进行交换变量的操作

--提示:新建一个变量来存放临时的值

print(a,b)

5.5 输出变量

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

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

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


num = 123

--请补全代码,输出num的值

print(你要在这里填东西)

5.6 算数运算符

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

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

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


+ 加法

- 减法

* 乘法

/ 除法

% 取余,求出除法的余数

^ 乘幂,计算次方

- 负号,取负值

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


a = 21

b = 10

c = a + b

print('a + b 的值为 ', c )

c = a - b

print('a - b 的值为 ', c )

c = a * b

print('a * b 的值为 ', c )

c = a / b

print('a / b 的值为 ', c )

c = a % b

print('a % b 的值为 ', c )

c = a^2

print('a^2 的值为 ', c )

c = -a

print('-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        --重量

--请打印出物体的密度




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

;