lua 常用数据类型总结

命运对每个人都是一样的,不一样的是各自的努力和付出不同,付出的越多,努力的越多,得到的回报也越多,在你累的时候请看一下身边比你成功却还比你更努力的人,这样,你就会更有动力。

导读:本篇文章讲解 lua 常用数据类型总结,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

前言

在上一篇我们说明了如何基于centos7系统快速搭建lua,本篇将接着说明lua常用的数据类型以及基础语法

关键字

下列是
Lua
的关键字,大家在定义常量、变量或其他用户自定义标识符都要避免使用以下这些关键字:

 lua 常用数据类型总结

 一般约定,以下划线开头连接一串大写字母的名字(比如 _VERSION) 被保留用于 Lua 内部全局变量。这个也是上面我们不建议这么定义标识 符的原因。

运算符

Lua
中支持的运算符有算术运算符、关系运算符、逻辑运算符、其他运算符

算术运算符:
+  
加法
–  
减法
*  
乘法
/  
除法
%  
取余
^  
乘幂
–  
负号

 例如:

10+20 –> 30
20-10 –> 10
10*20 –> 200
20/10 –> 2
3%2 –> 1
10^2 –> 100
-10 –> -10
lua 常用数据类型总结
关系运算符
==  
等于
~=  
不等于
 
>  
大于
 
<  
小于
>=  
大于等于
 
<=  
小于等于

例如
10==10 –>true
10~=10 –>false
20>10 –>true
20<10 –>false
20>=10 –>true
20<=10 –>false

逻辑运算符
and
逻辑与
A and B &&
or
逻辑或
A or B ||
not
逻辑非 取反,如果为
true,
则返回
false !
逻辑运算符可以作为
if
的判断条件,返回的结果如下
:
A = true
B = true
A and B –>true
A or B –>true
not A –>false
A = true

lua 常用数据类型总结

 

其他运算符

..
连接两个字符串
#
一元预算法,返回字符串或表的长度
例如
:
“HELLO “..”WORLD” –>HELLO WORLD
#”HELLO” –>5

全局变量
&
局部变量

Lua
语言中,全局变量无须声明即可使用。在默认情况下,变量总是认为是全局的,如果未提前赋值,默认为nil:
lua 常用数据类型总结

 

要想声明一个局部变量,需要使用
local
来声明

Lua数据类型

Lua

8
个数据类型
nil(
空,无效值
)
boolean(
布尔,
true/false)
number(
数值
)
string(
字符串
)
function(
函数
)
table
(表)
thread(
线程
)
userdata
(用户数据)

可以使用
type
函数测试给定变量或者的类型:
print(type(nil)) –>nil
print(type(true)) –> boolean
print(type(1.1*1.1)) –> number
print(type(“Hello world”)) –> string
print(type(io.stdin)) –>userdata
print(type(print)) –> function
print(type(type)) –>function
print(type{}) –>table
print(type(type(X))) –> string

lua 常用数据类型总结

 

nil

nil
是一种只有一个
nil
值的类型,它的作用可以用来与其他所有值进行区分,也可以当想要移除一个变量时,只需要将该变量名赋值为nil,
垃圾回收就会会释放该变量所占用的内存

boolean

boolean
类型具有两个值,
true

false

boolean
类型一般被用来做条件判断的真与假。在Lua
语言中,只会将
false

nil
视为假,其他的都视为真,特别是在条件检测中0
和空字符串都会认为是真,这个和我们熟悉的大多数语言不太一样

number


Lua5.3
版本开始,
Lua
语言为数值格式提供了两种选择
:integer(
整型
)和flfloat(
双精度浮点型
)[
和其他语言不太一样,
flfloat
不代表单精度类型
]

数值常量的表示方式:

>4 –>4
>0.4 –>0.4
>4.75e-3 –>0.00475
>4.75e3 –>4750
不管是整型还是双精度浮点型,使用
type()
函数来取其类型,都会返回的是number
>type(3) –>number
>type(3.3) –>number

所以它们之间是可以相互转换的,同时,具有相同算术值的整型值和浮点型值在Lua
语言中是相等

string

Lua
语言中的字符串即可以表示单个字符,也可以表示一整本书籍。在Lua语言中,操作
100K
或者
1M
个字母组成的字符串的程序很常见

可以使用单引号或双引号来声明字符串
>a = “hello”
>b = ‘world’
>print(a) –>hello
>print(b) –>world
如果声明的字符串比较长或者有多行,则可以使用如下方式进行声明
html = [[
<html>
<head>
<title>Lua-string</title>
</head>
<body>
<a href=”http://www.lua.org”>Lua</a>
</body>
</html>
]]

table

table

Lua
语言中最主要和强大的数据结构。使用表,
Lua
语言可以以一种简单、统一且高效的方式表示数组、集合、记录和其他很多数据结构。 Lua
语言中的表本质上是一种辅助数组。这种数组比
Java
中的数组更加灵活,可以使用数值做索引,也可以使用字符串或其他任意类型的值作索引(

nil

)

创建表的最简单方式:

a = {}
创建数组:
我们都知道数组就是相同数据类型的元素按照一定顺序排列的集合,那么使用table
如何创建一个数组呢
?
>arr = {“TOM”,”JERRY”,”ROSE”}
要想获取数组中的值,我们可以通过如下内容来获取
:
print(arr[0]) nil
print(arr[1]) TOM
print(arr[2]) JERRY
print(arr[3]) ROSE

lua 常用数据类型总结

 

从上面的结果可以看出来,数组的下标默认是从
1
开始的。所以上述创建数组,也可以通过如下方式来创建
>arr = {}
>arr[1] = “TOM”
>arr[2] = “JERRY”
>arr[3] = “ROSE”

上面我们说过了,表的索引即可以是数字,也可以是字符串等其他的内容,所以我们也可以将索引更改为字符串来创建
>arr = {}
>arr[“X”] = 10
>arr[“Y”] = 20
>arr[“Z”] = 30

lua 常用数据类型总结

当然,如果想要获取这些数组中的值,可以使用下面的方式
方式一
>print(arr[“X”])
>print(arr[“Y”])
>print(arr[“Z”])
方式二
>print(arr.X)
>print(arr.Y)
>print(arr.Z)

 当前table的灵活不进于此,还有更灵活的声明方式

>arr = {“TOM”,X=10,”JERRY”,Y=20,”ROSE”,Z=30}
如何获取上面的值
?
TOM : arr[1]
10 : arr[“X”] | arr.X
JERRY: arr[2]
20 : arr[“Y”] | arr.Y
ROESE?

function


Lua
语言中,函数(
Function
)是对语句和表达式进行抽象的主要方式。
定义函数的语法为:
function functionName(params)
end

函数被调用的时候,传入的参数个数与定义函数时使用的参数个数不一致的时候,Lua
语言会通过 抛弃多余参数和将不足的参数设为
nil
的方式来调整参数的个数;
lua 常用数据类型总结

 

可变长参数函数
function add(…)
  a,b,c=…
  print(a)
  print(b)
  print(c)
end
add(1,2,3) –> 1 2 3
函数返回值可以有多个,这点和
Java
不太一样
function f(a,b)
  return a,b
end
x,y=f(11,22) –> x=11,y=22

thread

thread
翻译过来是线程的意思,在
Lua
中,
thread
用来表示执行的独立线路,用来执行协同程序

userdata

userdata
是一种用户自定义数据,用于表示一种由应用程序或
C/C++
语 言库所创建的类型

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/143236.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!