Lua 基础教程(五)数据类型

63 阅读1分钟

Lua 基础教程(五)数据类型

hudson 译 原文

Lua 是一种动态类型语言,因此变量没有类型,只有值有类型。值可以存储在变量中,作为参数传递,并作为结果返回。

在 Lua 中,虽然没有变量数据类型,但是有值的类型。以下是值的数据类型列表。

序号类型描述
1nil用于区分值是否具有某些数据或没有数据(nil)。
2boolean包括 true 和 false 作为值。通常用于条件检查。
3number表示实数(双精度浮点数)。
4string表示字符数组。
5function表示以 C 或 Lua 编写的方法。
6userdata表示任意的 C 数据。
7thread表示独立的执行线程,用于实现协程。
8table表示普通数组、符号表、集合、记录、图、树等,并实现关联数组。它可以保存任何值(除了 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(nil))                 --> nil
print(type(type(ABC)))           --> string

执行上述程序时,它在 Linux 上产生以下结果:

string
number
boolean
function
nil
string

默认情况下,所有变量在被赋值或初始化之前都指向 nil。在 Lua 中,零和空字符串在条件检查中被视为 true。因此,在使用布尔运算时,必须小心。我们在后面章节中会更多地讨论这些类型。