Lua是一种动态类型语言,因此变量没有类型,只有值具有类型.值可以存储在变量中,作为参数传递并作为结果返回.
在Lua中,虽然我们没有可变数据类型,但我们有值的类型.值的数据类型列表如下所示.
Sr.No | Value Type&说明 |
---|---|
1 | nil 用于区分值与某些数据或没有(零)数据. |
2 | boolean 包括true和false作为值.通常用于条件检查. |
3 | number 表示实数(双精度浮点数). |
4 | string 表示字符数组. |
5 | function 表示用C或Lua编写的方法. |
6 | userdata 表示任意C数据. |
7 | thread 表示执行的独立线程,用于实现协同程序. |
8 | table 表示普通数组,符号表,集合,记录,图形,树等,并实现关联数组.它可以保存任何值(除了nil). |
在Lua中,有一个名为'type'的函数使我们能够知道变量的类型.以下代码中给出了一些示例.
print(type("What is my type")) --> string t = 10 print(type(5.8*t)) --> number print(type(true)) --> boolean print(type(print)) --> function print(type(nil)) --> nil print(type(type(ABC))) --> string
当你构建并执行上面的程序时,它在Linux上产生以下结果 :
string number boolean function nil string
默认情况下,在为其分配值或初始化之前,所有变量都将指向nil.在Lua中,在条件检查的情况下,零和空字符串被认为是真的.因此,使用布尔运算时必须小心.我们将在下一章中使用这些类型了解更多信息.