在你的游戏中应用Lua(4):做为配置语言

任何一种语言的存在都是为了表达,做为一种动态配置的语言,Lua提供给我们非常强大也非常的灵活的表达方式。

Lua是一种动态类型的语言,它只有几种基本的类型:nil,boolean,number,string,userdata,function,thread和table。Nil,boolean,number,string这些与其它语言都类似。由于Lua实现了动态内存管理,所以在使用string的时候无须担心内存分配和释放问题。

在Lua中,function就是值,可以被存储在一个变量中,可以做为另一个function的参数,可以做为返回值被返回。

Userdata表现了一块原始的内存区域,它可以被存储在变量中,在Lua中没有对userdata的预定义操作,除了赋值和相等测试。Userdata不能在Lua中创建和修改,只能通过c api来操作userdata。Userdata表现了一个句柄的概念,你可以在Lua中持有它,可以交给任何c cpi来操作它,但是不能在Lua中改变它。

Thread表现了独立执行的线程,被用来实现coroutines。

Table是Lua中唯一的数据结构,它提供给我们非同寻常的表达能力,在Lua中,你可以用Table来表现一个Array,dynamic array,List,Set,queue,map等等,所有这些都可以使用table,用一种简单的一致的方式来表达。

在Lua中,table既不是值,也不是变量,实际上,它是Lua中的对象,我们不能声明一个Table,只能通过Table的构造器创建一个Table:

A = {}

在Lua中,Table永远都是匿名的,在上面的语句中,我们创建了一个table,然后让变量A引用到这个table,这意味着,在一个引用到一个table的变量和table本身之间没有固定的关系。从下面这个例子可以看出:

A = {}

A.name = “Lua”

B = A

A = nil

print(B.name)

程序将输出”lua”而不是nil

当程序不再用到一个table时,lua内存管理器将自动释放其内存。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值