Lua有8种基础数据类型:nil, boolean, number, string, function, userdata, thread, and table.
1. nil
nil类型有一个值,nil,它的主要属性是不同于任何其他值;它通常表示缺少有用的值。
2. boolean
布尔类型有两个值,false和true。nil和false都使条件为false,它们统称为false values。任何其他值都使条件为真。
3. number
number有两个子类型:integer 和 float
标准Lua用32位integers 和双进度64位floats
4. string
string表示不可变的字节序列
5. function
Lua可以调用(和操作)用Lua编写的函数和用C编写的函数
6. userdata
userdata值表示一块原始内存,
userdata的值只能通过C的API创建和修改,不能通过Lua创建和修改,
userdata有两种:full userdata,light userdata
full userdata 是一个由Lua管理内存块的对象
light userdata 是一个简单的C指针
7. thread
thread代表独立的执行线程,它被用来实现协程。Lua线程与操作系统线程无关。
8. table
table是Lua中唯一的数据结构机制;它们可以用来表示普通的数组(arrays)、列表(lists)、符号表(symbol tables)、集合(sets)、记录(records)、图(graphs)、树(trees)等。
table可以包含所有类型的值(nil除外),还可以使用除nil和NaN之外的任何Lua值作为table的索引。
table也可以携带方法。
为了避免歧义,任何作为键的浮点数等于一个整数都会被转换为该整数
Tables, functions, threads, and (full) userdata 的值都是对象:变量实际上不包含这些值,只是对它们的引用
详细请参考官方文档。
网友评论