前言本文将通过几个简单的实例演示,巩固对__index和__newindex的理解,同时加深对Lua中元表和元方法的理解,如果对Lua的元表和元方法还不是很熟悉的话,请参考这篇文章:《Lua中的元表与元方法》。具有默认值的table我们都知道,table中的任何字段的默认值都是nil,但是通过元表,...
简单说说Lua中的面向对象Lua中的table就是一种对象,看以下一段简单的代码:123456789101112localtb1={a=1,b=2} localtb2={a=1,b=2} localtb3=tb1 iftb1==tb2then print("tb1==tb2") elseprint(...
分类:
其他好文 时间:
2014-08-20 20:53:42
阅读次数:
413
前言在《Lua中的一些库》中也说道了,要对string库的模式匹配进行单独的讲解。对于字符串的处理,对于任何语言的学习来说,都是一个难点,而且也是一个必会的知识点。给你一个字符串,让你按照某种需求进行处理,你不会,那是多么尴尬的一件事情。所以,看完《Lua中的一些库》和这篇文章之后,我争取做到让你在...
分类:
其他好文 时间:
2014-08-20 20:53:32
阅读次数:
294
前言对于Lua的基础总结总算告一段落了,从这篇博文开始,我们才真正的进入Lua的世界,一个无聊而又有趣的世界。来吧。Lua语言是一种嵌入式语言,它本身的威力有限;当Lua遇见了C,那它就展示了它的强大威力。C和Lua是可以相互调用的。第一种情况是,C语言拥有控制权,Lua是一个库,这种形式中的C代码...
分类:
其他好文 时间:
2014-08-20 20:53:12
阅读次数:
299
前言在很多语言中都有闭包的概念,而在这里,我将主要对Lua语言的闭包概念进行分析与总结。希望对大家学习Lua有帮助。什么是闭包?闭包在Lua中是一个非常重要的概念,闭包是由函数和与其相关的引用环境组合而成的实体。我们再来看一段代码:1234567891011functionnewCounter() ...
分类:
其他好文 时间:
2014-08-20 20:52:32
阅读次数:
256
前言协同程序与线程差不多,也就是一条执行序列,拥有自己独立的栈、局部变量和指令指针,同时又与其它协同程序共享全局变量和其它大部分东西。从概念上讲,线程与协同程序的主要区别在于,一个具有多个线程的程序可以同时运行几个线程,而协同程序却需要彼此协作的运行。就是说,一个具有多个协同程序的程序在任意时刻只能...
分类:
其他好文 时间:
2014-08-20 20:52:12
阅读次数:
264
算术操作符Lua支持常规的算术操作符有:”+”(加法),”-”(减法),”*”(乘法),”/”(除法),”^”(指数),”%”(取模),一元的”-”(负号)。所有的这些操作符都用于实数。例如:x^0.5将计算x的平方根,x^3将计算x的3次方。关系操作符Lua提供的关系操作符有:””,”=”,”==...
分类:
其他好文 时间:
2014-08-20 20:51:42
阅读次数:
274
前言元表对应的英文是metatable,元方法是metamethod。我们都知道,在C++中,两个类是无法直接相加的,但是,如果你重载了“+”符号,就可以进行类的加法运算。在Lua中也有这个道理,两个table类型的变量,你是无法直接进行“+”操作的,如果你定义了一个指定的函数,就可以进行了。那本文...
分类:
其他好文 时间:
2014-08-20 20:51:33
阅读次数:
460
Lua中的函数和C++中的函数的含义是一致的,Lua中的函数格式如下:123functionMyFunc(param) --Dosomething end在调用函数时,也需要将对应的参数放在一对圆括号中,即使调用函数时没有参数,也必须写出一对空括号。对于这个规则只有一种特殊的例外情况:一个函数若只有...
分类:
其他好文 时间:
2014-08-20 20:51:02
阅读次数:
363
前言Lua将其所有的全局变量保存在一个常规的table中,这个table称为“环境”。这种组织结构的优点在于,其一,不需要再为全局变量创造一种新的数据结构,因此简化了Lua的内部实现;另一个优点是,可以像其他table一样操作这个table。为了便于实施这种操作,Lua将环境table自身保存在一个...
分类:
其他好文 时间:
2014-08-20 20:50:12
阅读次数:
187