第2章 类型和值

Lua是动态类型语言,变量不要类型定义。Lua中有8个基本类型分别为:nilbooleannumberstringuserdatafunctionthreadtable。函数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

变量没有预定义的类型,每一个变量都可能包含任一种类型的值。

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

注意上面最后两行,我们可以使用function像使用其他值一样使用(更多的介绍参考第六章)。一般情况下同一变量代表不同类型的值会造成混乱,最好不要用,但是特殊情况下可以带来便利,比如nil


相关链接:
lua程序设计目录 - 中国lua开发者 - lua论坛