Lua数据类型

Lua的数据类型可以分为:数值类型(number)、布尔类型(boolean)、字符串类型(string)、自定义类型(userdata)、函数类型(function)、线程(thread)、表类型(table)和空值(nil)。

1、数值类型(number)

数值类型可以保存实数,包括整数和浮点数,整数可以是十进制和十六进制,由一串数字序列组成。如果是0x开始,则表示是一个十六进制数。

2、布尔类型(boolean)

布尔类型有两种值:true和false。

3、字符串类型(string)

字符串是若干封装在双括号(“)或单括号(‘)内的字符。字符串示例如下:

“fish”

‘fish’

“5467”

“a line”

4、自定义类型(userdata)

在Lua中可以通过自定义类型与C进行交互,通过自定义类型可以将任意的C语言数据存储到Lua变量中。

5、函数类型(function)

在Lua中函数可以作为一种数据类型使用,函数可以赋值给一个变量,函数可以作为参数传递给其他函数。

6、线程类型(thread)

表示一个线程,线程可以同时执行多个,每个线程拥有自己独立的栈、局部变量和指令指针。

7、表类型(table)

table类型实现了一组关联数组类型。table类型是使用{}表示的,table类型示例如下:

local point = {x = 10,y = 20}

print(point["x"])                                --采用下标方式访问

print(point.y)                                   --采用字典方式访问

table的下标有两种,第一种为数字下标,第二种为字符下标。

如:

local a = {x = 10,"qqt",y = 20}

其中x和y为字符下标,而“qqt”对应的下标为1,下标是从1开始而不是0开始。

当table中没有数字下标时,该table的长度为0,不能通过#或table.getn来获取它的长度。

当table为数组且存在nil时,无法通过#或table.getn来获取它的长度,因为数组默认遇到nil便便被判断为数组结束。

引用数字下标时,使用a[1]

引用字符下标,使用a[“x”]或者a.x

8、空值(nil)

nil是Lua中的特殊类型,表示没有任何有效值的情况。在变量没有被赋值以前默认值是nil,如果变量被赋值为nil则Lua的垃圾收集器会删除该变量,释放它所占的内存、

你可能感兴趣的:(Lua)