第一版是针对 Lua 5.0 编写的。虽然在很大程度上仍然适用于后续版本,但也存在一些差异。
第四版针对 Lua 5.3,可在 Amazon 和其他书店购买。
购买本书,您还将帮助 支持 Lua 项目。
![]() |
用 Lua 编程 | ![]() |
| 第一部分。语言 第 2 章。类型和值 |
Lua 是一种动态类型语言。该语言中没有类型定义;每个值都带有自己的类型。
Lua 中有八种基本类型:nil、boolean、number、string、userdata、function、thread 和 table。type 函数给出给定值的类型名称
print(type("Hello world")) --> string
print(type(10.4*3)) --> number
print(type(print)) --> function
print(type(type)) --> function
print(type(true)) --> boolean
print(type(nil)) --> nil
print(type(type(X))) --> string
无论 X 的值是什么,最后一个示例都将生成 "string",因为 type 的结果始终是一个字符串。
变量没有预定义的类型;任何变量都可以包含任何类型的值
print(type(a)) --> nil (`a' is not initialized)
a = 10
print(type(a)) --> number
a = "a string!!"
print(type(a)) --> string
a = print -- yes, this is valid!
a(type(a)) --> function
注意最后两行:函数是 Lua 中的一等值;因此,我们可以像处理任何其他值一样处理它们。(有关更多信息,请参见 第 6 章。)
通常,当您对不同类型使用单个变量时,结果是混乱的代码。但是,有时明智地使用此功能会有所帮助,例如在使用 nil 区分正常返回值和异常条件时。
| 版权所有 © 2003–2004 Roberto Ierusalimschy。保留所有权利。 | ![]() |