这是我的第一篇正式博文,献给Lua。
接触Lua是因为我们的项目要使用Cocos2dx-lua引擎。初探Lua,感觉和C语言有些类似,这是一个脚本语言,功能强大,非常适合做游戏开发。有C语言的基础,学起来难度应该不算大。
Lua语言的语句是不需要分隔符做结尾的,如果都写在一行,最好能添加分号,便于理解。在Lua中,注释使用两个横线“--”,注释块使用“--[[”为头,“]]”为尾。
注释的技巧:结尾使用“--]]”,这样启用这块代码,只需在开头加横线即可。举例:
--[[
a=1
b=2
--]]
这块代码将两个变量都注释了,如果需要启用它们,只需改成:
---[[
a=1
b=2
--]]
这样首尾两行均被注释,代码可以使用了,下次想再次注释就删掉一个横线,不必做无用功。
Lua标识符可以是数字,字母和下划线,但是不能以数字开头。Lua有一个和null类似的东西,叫做nil,所有未初始化的变量,print出来就是nil,表示“空”。若要删除全局变量,只需赋值nil即可。
关于类型,Lua中使用了一个非常强大的东西——table,它是Lua的灵魂所在。学好table是很重要的。table是一种对象,可以动态添加内容,没有固定大小,通过构造表达式来创建,比如“{}”:tbl={},则tbl为lua的table。如果table中的变量没有初始化,则打印出来的就是nil。table报矿两个部分组成:key和value,可以key=value的形式不断添加成员。存储和读取的时候有多种方法,我们来看例子:
tbl = {}
tbl["x"] = 1
tbl.y = 5
tbl[6] = z
--现在,我们的tbl构成为:tbl={x=1,y=5,6=z},索引key在等号左边,值value在等号右边
print(tbl.x, tbl["y"], tbl[6])
--输出1 5 z
应该注意的是,和C不同,Lua用table表示的数组通常以1为起始索引,table操作:table.maxn(tbl)可以返回tbl的最大正索引数。
此外,Lua的函数部分也是重点,function在lua中也是极为灵活的。这一块在后续笔记中详细总结。下一次,我们将继续讨论Lua的语法部分,学习操作符和语句。