Lua类型
Lua是动态类型语言,变量不要类型定义。
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实现面向对象中也起了重要作用
UserdataandThreads
userdata可以将C数据存放在Lua变量中,userdata在Lua中除了赋值和相等比较外没有预定义的操作。userdata用来描述应用程序或者使用C实现的库创建的新类型。