鹿啊,鹿啊,鹿啊
顶顶大名的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中的函数是第一类值。即可以作为参数传递,可以作为返回值,可以赋给变量。
打完,收工