Lua 基础教程(五)数据类型
hudson 译 原文
Lua 是一种动态类型语言,因此变量没有类型,只有值有类型。值可以存储在变量中,作为参数传递,并作为结果返回。
在 Lua 中,虽然没有变量数据类型,但是有值的类型。以下是值的数据类型列表。
| 序号 | 类型 | 描述 |
|---|---|---|
| 1 | nil | 用于区分值是否具有某些数据或没有数据(nil)。 |
| 2 | boolean | 包括 true 和 false 作为值。通常用于条件检查。 |
| 3 | number | 表示实数(双精度浮点数)。 |
| 4 | string | 表示字符数组。 |
| 5 | function | 表示以 C 或 Lua 编写的方法。 |
| 6 | userdata | 表示任意的 C 数据。 |
| 7 | thread | 表示独立的执行线程,用于实现协程。 |
| 8 | 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(nil)) --> nil
print(type(type(ABC))) --> string
执行上述程序时,它在 Linux 上产生以下结果:
string
number
boolean
function
nil
string
默认情况下,所有变量在被赋值或初始化之前都指向 nil。在 Lua 中,零和空字符串在条件检查中被视为 true。因此,在使用布尔运算时,必须小心。我们在后面章节中会更多地讨论这些类型。