前言
Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。 在本课中,如果你是个新手,请跟着教程一步一个脚印,学习Lua的基础
一、第一个 “Hello World”
打开你的代码编辑器 输入
1
print("Hello World")
输出
1
Hello World
由此可见我们的 “print()”正如翻译:打印/输出 格式print(xxx) 其中xxx可以是数字,也可以用双引号 “” 单引号 ‘’ 输出字符串
什么是字符串
简单讲就是 双引号里面的内容 例如: “Abc” “CBA”
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Q:如果你想在字符串里面打双引号,单引号怎么办?
A: 如果你想打双引号 那么用 单引号括内容,单引号也是
E:
输入:
print('"ABC"')
print("'CBA'")
输出:
"ABC"
'CBA'
Q:如何打多行字符串
A:在Lua中可以使用[[内容]]来实现多行字符串。或者在单双引号里面使用"\n"换行
E:
输入:
x=[[321
123]]
b='lol\n321'
print(x)
print(b)
输出:
321
123
lol
321
变量
在上一案例中利用了变量的概念,可什么是变量呢?
1
x=123
此时此刻,x代表了123这个值,而x就是变量名,这个操作,称之为 赋值 变量名可以是任何英文,下划线,数字
1
2
3
4
!!!!
注意变量名不可以使用数字开头
Q:什么意思?
A:我们可以使用A123,AB1,AB2,AB3等作为变量名,而不能使用1AB,2AC,3AD等作为变量名
以下关键字也不可使用 | | | | | | ——– | —– | —– | —— | | and | break | do | else | | elseif | end | false | for | | function | if | in | local | | nil | not | or | repeat | | return | then | true | until | | while | goto | | |
局部变量
在赋值前加上 local 代表局部变量 Q:局部变量和上面的变量有什么区别吗 A:上面的变量称之为全局变量,局部变量是在一个部分里面的临时变量,不与全局变量冲突,如果你在函数内使用了同名局部变量,那么将会优先使用局部变量,BUT!!局部变量是有限制的,不推荐大面积使用
基本语法
注释:– 在代码前面使用”–“表示注释 例如:
1
2
3
4
5
输入
print(888)
--print(123)
输出
888
数据类型
在每个高级语言中,基本上都有数据类型的概念 Lua的数据类型常用可以分为以下种类:
- nil
- boolean
- number
- string
- function
- table
nil
空类型,类似于其他语言的null 如果打印一个不存在的变量就会返回nil 例如
1 2 3 4
输入 print(abc) 输出 nil
Q:为什么打印nil,不是有abc吗 A:因为abc是个不存在的变量,而不是字符串
boolean
中文名字:布尔型 只有true 和 false 两个值,也可说 真 假
1
2
3
注意!
在lua中
除了nil,false以外均是true
使用以下代码证实上述
1
2
3
4
5
6
7
8
9
10
11
12
13
输入:
if false or nil then
print("false 和nil至少有一个为真")
else
print("false 和 nil 都为假")
end
if 0 then
print("0是真")
else
print("0是假")
end
输出:
诶结果我不给你,自己实验去,实践出真知
number
任何不带引号的数字都看做number
1
2
3
4
5
6
7
8
9
10
例如
print(123123)
print(1.3)
print(type(123123))
print(type(1.3))
输出:
123123
1.3
number
number
也可以使用科学计数法
1
2
3
4
5
6
7
8
9
例如:
print(2e1)
print(2e999)
输出:
20
1.#INF
Q:为什么2e999输出 1.#INF
A:1.#INF 是代表一个无效数字,至于出现这个问题是由于lua的number类型类似 int64+double 的组合体
而int64最大的值是2的63次方-1,超过了这个范围就会无效
function
这个以后细讲,现在只需要了解他的名字 方法/函数
table
table的创建是通过”构造表达式”来完成,最简单构造表达式是{},用来创建一个空表。也可以在表里添加一些数据
1
2
3
--一个空table
table1={}
table2={'a','b'}
下标
又称为索引,lua里 在table中,第一个位置的下标是1,第二个是2,以此类推 如果没有值,那就返回nil 同时,我们可以赋值字符串,下标为任意值,注意,赋值下标为字符串那必须使用字符串才可以输出
1
2
3
4
5
6
7
8
9
10
11
12
例如
a={'c','b','d'}
a['e']='f'
print(a[1])
print(a[3])
print(a[4])
print(a['e'])
输出
c
d
nil
f