在用cocos-lua写东西,所以下边是一些关于lua的知识点,做一个随手记,也希望之中的某一点能对大家有一点帮助。
-
lua的基础类型有8种,分别为
nil :只有nil一个值,用来表示无效值。全局变量在初始化之前就是nil。全局变量赋值为nil,就相当于删除了该全局变量
boolean:在lua中,只有当变量为false和nil是才视之为“假”,其他值均为“真”。
number:lua中表示实数。lua中没有专门的类型表示整数
string:Lua中的字符串通常表示“一个字符序列”。字符串类型的变量是不可变的,因此不能像C语言中那样直接修改字符串的某一个字符,而是在修改的同时创建了新的字符串。
function:在Lua中,函数可以存储在变量中,可以通过参数传递其它函数,还可以作为其它函数的返回值。这种特性使语言具有了极大的灵活性。
thread
table:表/元表,内容略多,此处先省略下,,,,
userdata:由于userdata类型可以将任意C语言数据存储到Lua变量中。在Lua中,这种类型没有太多预定义的操作,只能进行赋值和相等性测试。userdata用于表示一种由应用程序或C语言库所创建的新类型。
当遇到某些变量,不清楚该变量的类型时,可以通过type函数来获得变量类型,该类型信息会以字符串的形式返回。
示例如下
> print(type("hello world"))
string
> print(type(10.4))
number
> print(type(print))
function
> print(type(true))
boolean
> print(type(nil))
nil
> print(type(type(X)))
string
- 全局变量 lua中全局变量无需声明,直接赋值即可。如果访问未初始化的全局变量,lua也不会报错,直接返回nil 空。如果某全局变量不想再使用,赋值为nil即可。示例如下 pinrt(b) 会输出nil 。 b=100 print(b) 会输出100 。不用时再付为空 b=nil print(b) 则又输出nil