一. nil
nil 是一种只有一个 nil 值得类型,它的主要作用就是与其他所有制进行区分。Lua 语言使用 nil 来标识无效值(non-value,即没有有用的值)的情况。
一个全局变量在第一次被赋值前的默认值就是 nil,而将 nil 赋值给全局变量则相当于将其删除。
二. Boolean
Boolean 类型具有两个值,true 和 false,他们分别代表了传统布尔值。不过,在 Lua 语言中,Boolean 值并非是用于条件测试的唯一方式,任何值都可以标识条件。在 Lua 语言中,条件测试(例如控制结构中的分支语句)将除 Boolean 值 false 和 nil 外的所有其他值视为真。特别的是,在条件检测中 Lua 语言把零和空字符串也都视为真。
三. 数值常量
在 Lua5.2 及之前额版本中,所有的数值都以双精度浮点格式标识。从 Lua5.3 版本开始,Lua 语言为数值格式提供了两种选择:被称为 integer 的 64位整型和被称为 float 的双精度浮点类型
- 使用科学计数法书写数值常量,例如:
> 0.4
0.4
> 4.57e-3
0.00457
> 0.3e12
300000000000.0
> 5E13
50000000000000.0
> 5E+10
50000000000.0
> 5E+20
5e+020
- 具有十进制小数或者指数的数值会被当做浮点型值,否则会被当做整型值。整型值和浮点型值得类型都是 “number”:
> type(3)
number
> type(4.4)
number
> type(3.0)
number
- 由于整型值和浮点型值得类型都是“number”,所以他们是可以相互转换的。同时,具有相同算数值得整数型和浮点型值在 Lua 语言中是相等的。
> 1 == 1.0
true
> -3 == -3.0
true
> 0.2e4 == 2000
true
- 在少数情况下,当需要区分整型值和浮点型值时,可以使用函数 math.type
> math.type(3)
integer
> math.type(3.0)
float
- Lua 语言像其他语言一样也支持以 0x 开头的十六进制常量。与其他很多编程语言不同,Lua 语言还支持十六进制的浮点数,这种十六进制浮点数由小数部分和以 p 或 P开头的指数部分组成:
> 0xff
255
> 0x1A3
419
> 0x0.2
0.125
> 0x1p-1
0.5
> 0xa.bp2
42.75
网友评论