开发者学堂课程【大数据实战项目:反爬虫系统(Lua+Spark+Redis+Hadoop 框架搭建)第一阶段:Lua 语法数据类型与变量】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/669/detail/11598
Lua 语法—数据类型与变量
内容介绍
一、Lua 数据类型
二、 Lua 的变量
三、在知识点总结
一、Lua 数据类型
(1)数据基本类型
Lua 中有八个基本类型:
nil booleam number string userdata function thread 和 table
数据类型 |
描述 |
nil |
这个最简单,只有nil属于该类型,表示无效的(在条件表达式中相当于false) |
booleam |
包含两个值 false 和 ture |
number |
表示双精度类型的实浮点数 |
string |
字符串有一对单数引号或双数引号来表示 |
userdata |
由c或lua编写的函数 |
function |
表示任意存储在变量中的 c 数据结构 |
thread |
表示执行的数据线路,表示执行的协同程序 |
table |
Lua 中的表(table)实际上是一个”关联数组”(associative arrays) 数据的索引可以是数字或者字符串,在 lua 里,table 的建立是通过“构建表达式来完成,最简单构建表达式是0,用来创建一个空表 |
(2)数据类型测试
通过脚本方式,以 hello.lua 脚本为例
输入 text.01.lua 回车
输出运用 print(“hello.lua”)
使用双引号,则数据类型为 string
将 print(“hello.lua”)更改为 Print(type(“hello.lua”)
再次执行 lua 则为 string 输出
多次复制 Print(type(“hello.lua”)
将一个(“hello.lua”)更改单引号(‘hello.lua’)
将一个(“hello.lua”)更改为数值(123)则为 number
将一个(“hello.lua”)更改为(true)则为 booleam
将一个(“hello.lua”)更改为(A)前置变量 a= 由于没有赋值,输出结果无效则为 nil
输出 funcation 前首先定义一个 funcation
编写 funcation fun()
End
Fun 是指定的一个空函数
再将(“hello.lua”)更改为(fun)
将一个(“hello.lua”)更改为({}{}{})则代表table 类型
保存 退出
userdata 和 thread 不常用 在此不做展示
执行 lua 脚本
string
string
number
booleam
nil
function
table
得到如下数据类型
将结果进行 cat.
Print(type(“hello.lua”)
print(type(’hello.lua‘)
单双引号为 string
print(type(123)
数值型为 number
print(type(ture)则为 blooleam
A=
print(type(a)为nil
Function fun ()
End
print(type(fun)函数为空函数 类型为 Function
print(type({{{}}})函数中一个大括号或大括号套大括号,类型为 table
二、lua 的变量
(1) 变量的类型展示
Lua 的变量有三种类型
除了上述的 a=
再次打开 lua 进行展示
输入变量
A=10 b=20
Print(a,b)
进行输出 lua 得到10 20
再次接收
aa,bb,cc=11,22,
Print(aa,bb,cc)
保存执行 11 22 nil
aa,bb,cc=11,22,一次性可设置多个变量,可赋值为空
没有数据类型,因为数据为自动识别
将 Print(aa,bb,cc)更改为 Print(type(aa),type(bb),type(cc))
保存,并执行
得到 number number nil
根据数据的返回值变化而变化
(2)Lua 变量定义
lua 变量分为:全局变量、局部变量、表中的域
在 lua 当中默认的变量均为全局变量,如:aa,bb,cc
用 local 显式声明为局部变量,如:
local a=10执行结果相同 10
局部变量的作用域为从声明位置开始到所在语句块结束
如:
Function fun ()
End
到 end 结束域
表中的域不常用
三、知识点总结
1. 数据类型(8种)
Nil:表示空值
Number:数值类型
String:字符串,用单引号或者双引号表示
Boolean:表示的是 ture 或者 false
Function:函数类型
Table:表的结构相当于之前学的 map 类型
2变量
全局变量:所有变量都为全局变量,除非用 local 声明的变量
局部变量:用 local 声明的变量,局部变量的作用域为从声明位置开始到所在语句块结束
比如:
声明在函数里面的局部变量,除了函数便不能再用,
声明在整个脚本的 local 变量,除了脚本便不能再用
表中的域:声明在表中的变量