数据类型
数据类型
Lua 是动态类型编程语言,变量没有类型,只有值才有类型。值可以存储在变量中,作为参数传递或者作为返回值。
尽管在 Lua 中没有变量数据类型,但是值是有类型的。下面的列表中列出了数据类型:
值类型 | 描述 |
---|---|
nil | 用于区分值是否有数据,nil 表示没有数据。 |
boolean | 布尔值,有真假两个值,一般用于条件检查。 |
number | 数值,表示实数(双精度浮点数)。 |
string | 字符串。 |
function | 函数,表示由 C 或者 Lua 写的方法。 |
userdata | 表示任意 C 数据。 |
thread | 线程,表示独立执行的线程,它被用来实现协程。 |
table | 表,表示一般的数组,符号表,集合,记录,图,树等等,它还可以实现关联数组。它可以存储除了 nil 外的任何值。 |
type 函数
Lua 中有一个 type 函数,它可以让我们知道变量的类型。下面的代码中给出了一些例子:
print(type("What is my type")) --> string
t=10
print(type(5.8*t)) --> number
print(type(true)) --> boolean
print(type(print)) --> function
print(type(type)) --> function
print(type(nil)) --> nil
print(type(type(ABC))) --> string
在 Linux 系统中运行上面的代码可以得到如下的结果:
string
number
function
function
boolean
nil
string
默认情况下,在被初始化或赋值前,所有变量都指向 nil。 Lua 中空字符串和零在条件检查时,都被当作真。所以你在使用布尔运算的时候要特别注意。在下一章中,我们会了解到更多关于这些类型的知识。