学过C\C++、C#等主流编程语言的人都清楚,这些语言中对数据类型都有明确的定义,整型必须定义为int、字符串必须定义为string等。而Lua对变量类型的定义是动态的,也就是说对于一个变量,我们不需要类型的定义,只需要对其赋值即可。动态的类型有好有坏,好的方面在于我们无需关心一个数据具体是什么类型,直接定义,快捷,简便,也符合了作为轻量级脚本语言的特性;坏的方面在于有时候代码写长写多了,我们会忘记某个变量一开始赋值时的类型,在之后一些参数传递上会出现类型不匹配等问题。不过作为嵌入其他程序中的脚步语言,Lua自身的代码量不会太长,所以我个人还是挺喜欢这种动态类型的定义的~
虽说是动态类型,Lua也有8个基本的类型分别为:nil、boolean、number、string、userdata、function、thread和table。
数据类型 | 描述 |
nil | 一个无效值,其类型只包含nil |
boolean | true或者false |
number | 双精度类型的实浮点数 |
string | 字符串类型 |
function | 函数类型 |
userdata | 存储在变量中的数据结构类型 |
thread | 线程类型 |
table | 表类型 |