
同时,在目前脚本引擎中,Lua的运行速度占有绝对优势。这些都决定了Lua是作为嵌入式脚本的最佳选择。
在我们编写代码之前,需要做一下准备,就是:确保你输入标点符号时,用的不是中文输入法。
第一个 Lua 程序
几乎所有语言的第一行代码,都是输出hello world,本教程也不意外。
在Lua中,打印结果只需要使用print这个函数即可。同时,如果需要使用函数,只需要在函数名后加上双括号,同时传入你想传入的值即可。
所以,我们来执行下面的代码,打印出hello world吧!
print("hello world!")
输出数据
上一部分,我们知道了,在Lua中,可以使用print函数来打印你想要得到的结果。
并且还知道了,函数是指可以实现某些功能的子程序,可以使用函数名(参数)来执行。
让我们试着输出一些其他东西吧!使用多个print函数,输出自己想输出的数据。
print("测试")
print("aabcdefg")
print("xxxxx","第二个参数","第三个参数")
注释就是在代码里,不会运行的部分。注释完全不会被运行。这部分是为了在查看代码时,可以更好地立即现有代码含义用的。
我们可以用--开头,来写一段单行注释
也可以用--[[开头,]]结尾,写一段多行注释。
下面是注释的例子:
print("这段代码会运行")
--print("我被注释掉了,所以不会运行")
--[[ 我是多行注释 不管我写多少行 都不会影响代码运行
]]
变量,可以看作是一个桶,在里面装你想要装的内容。这些内容可以是Lua包含的所有合法类型。例如:我想要新建一个桶,名叫bucket,在里面放入233这个数字,就可以像下面一样:
bucket = 233
让我们试着自己新建几个变量吧!
--新建三个变量,并赋值
year = 1926
month = 8
day = 7
--打印出三个变量的值
print(year,month,day)
nil类型表示没有任何有效值,只要是没有声明的值,它就是nilnil:ccc = 233
print(ccc)
print(aaa)
这里需要你思考一下,运行以下代码,将会输出什么结果?
a = 1
b = '2'
c = a
print(a,b,c,d)
赋值是改变一个变量值的最基本的方法。等号对左边的变量进行赋值n = 2
n = 3
n = n + 1
b = n
Lua可以对多个变量同时赋值,变量用逗号分开,赋值语句右边的值会依次赋给左边的变量。
n = 1
a, b = 10, 2*n
当左右值的数量不一致时,Lua会进行下面的设定:
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)
a和b的值,请在交换他们的值,使打印输出12 34a = 34
b = 12 --你需要在这里进行交换变量的操作
--提示:新建一个变量来存放临时的值 print(a,b)
print函数,输出已知变量。 我们已知变量num为某个数字,试着输出它的值吧!num = 123
--请补全代码,输出num的值
print(你要在这里填东西)
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 --重量
--请打印出物体的密度
字符串(即string),就是一串文本数据,可以存储你要的文本。print出的数据就是一个字符串。--双引号间的一串字符
str1 = "Lua"
--单引号间的一串字符
str2 = 'Lua'
--[[和]]--间的一串字符
str3 = [[Lua]]
str4 = [[使用双括号时,甚至能包含换行数据
换行了
最后一行]] --输出所有字符串
print(str1)
print(str2)
print(str3)
print(str4)
接下来你需要完成下面的练习:
新建三个变量s1、s2、s3
分别存入字符串数据:str、abc、233,使输出打印正确
--请在空白处补全代码 print("s1,s2,s3的值:",s1,s2,s3)
print("s1,s2,s3的类型:",type(s1),type(s2),type(s3))
转义字符
在上一节中,我们学习了如何声明字符串。
但是我们有时候会遇到一些特殊的问题,如:如何输出单引号和双引号?如何输出回车换行?
也许我们可以用下面的方式简单规避,输出单引号时,声明字符串用双引号括起来,像下面这样
str = "'"
同理,输出双引号时,声明字符串用单引号括起来,像下面这样
str = '"'
但是,这样会出现一个问题:如何同时显示单引号和双引号?这里就需要转义字符登场了。
转义字符用于表示不能直接显示的字符,比如后退键、回车键、等。
以 开头的都是转义字符,下面时常用的转义字符格式:
| 转义字符 | 含义 |
|---|---|
| n | 换行(LF),将当前位置移到下一行开头 |
| r | 回车(CR),将当前位置移到本行开头 |
| 反斜杠字符 | |
| ’ | 单引号 |
| " | 双引号 |