Lua基础类型

鹿啊,鹿啊,鹿啊

顶顶大名的Lua脚本语言,广泛应用于游戏逻辑部分和网络游戏插件开发。比如网游霸主山口山的插件,还有金山的剑网插件等。愤怒的小鸟也用了Lua进行开发。现在cocos2d-x也内嵌了Lua,所以有必要学学。推荐《Lua程序设计第二版》,中文版的翻译不怎么样,看英文版会好点,如果英文不像我这么烂的话。

Lua跟所有的脚本语言一样,是解释执行的。

Lua是一种动态类型的语言,没有类型定义的语法,其类型由其值决定。

Lua有8中基础类型:nil(空)、boolean(布尔)、number(数字)、string(字符串)、userdata(自定义类型)、function(函数)、thread(线程)和table(表)。

nil:和java、C、C++里面的NULL类似。表示一种无效值。

boolean:和大多数语言的布尔型一样有false和true两个值。在Lua中除了false和nil外都为真。

number:32位双精度浮点数。

string:字符串,可以用单引号或双引号表示。

table:表。Lua中最强大的数据结构机制。table是匿名的,一个持有table的变量与table自身之间没有固定的关联性(Lua程序设计第二版)。

解释一下,table在Lua中是一个对象,程序持有一个对其的引用或指针。这个关联性并不像C++的引用和指针那样强烈。如下:

a = {}
a["x"] = 10
b = a 
print(b["x"])       ——>10
b["x"]  = 20
print(a["x"])       ——>20
b和a同时引用同一个table,但这里的引用不是C++里面的引用的概念,但也并不是创建的副本,Lua里面的table不会暗中产生副本。

如果将a置为nil,则a将被销毁,但table对象还在,还可以打印b["x"]的值为20,可见不是C++概念的引用。如果再将b置为nil,则再没有任何变量对table的引用了,当一个程序再没有对一个table的引用时,Lua的垃圾收集器将会删除该table,并复用它的内存。。

table的应用很多,不多做介绍,看书吧。

function:函数。Lua中的函数是第一类值。即可以作为参数传递,可以作为返回值,可以赋给变量。

打完,收工

你可能感兴趣的:(数据结构,function,String,table,lua,语言)