Lua 中有 8 个基本类型分别为:nil、boolean、 number、string、userdata、function、thread 和 table。函数 type 可以测试给定变量或者值 的类型。
print(type("Hello world)) --> string print(type(10*3)) --> number print(type(print)) --> function print(type(true)) -->true print(type(nil)) --> nil print(type(type(X))) -->string
Nil
Lua 中特殊的类型,他只有一个值:nil;
一个全局变量没有被赋值以前默认值为 nil;
给全局变量负 nil 可以删除该变量。
Booleans
两个取值 false 和 true。
但要注意 Lua 中所有的值都可以作为条件。在控制结构的条 件中除了 false 和 nil 为假,其他值都为真。所以 Lua 认为 0 和空串都是真。
Numbers
表示实数,Lua 中没有整数.Lua 的 numbers 可以处理任何长整数不用担心误差。
Strings
指字符的序列。lua 是 8 位字节,所以字符串可以包含任何数值字符,包括嵌入的 0。 这意味着你可以存储任意的二进制数据在一个字符串里。Lua 中字符串是不可以修改的, 你可以创建一个新的变量存放你要的字符串
Functions
函数是第一类值(和其他变量相同),意味着函数可以存储在变量中,可以作为函数 的参数,也可以作为函数的返回值。这个特性给了语言很大的灵活性:一个程序可以重 新定义函数增加新的功能或者为了避免运行不可靠代码创建安全运行环境而隐藏函数, 此外这特性在 Lua 实现面向对象中也起了重要作用
Userdata and Threads
userdata 可以将 C 数据存放在 Lua 变量中,userdata 在 Lua 中除了赋值和相等比较外 没有预定义的操作。userdata 用来描述应用程序或者使用 C 实现的库创建的新类型。