随笔分类 - lua
摘要:载入一个模块import() 与 require() 功能相同,但具有一定程度的自动化特性。假设我们有如下的目录结构:~~~app/app/classes/app/classes/MyClass.luaapp/classes/MyClassBase.luaapp/classes/data/Data1...
阅读全文
摘要:ipairs 和pairs在lua中都是遍历tbale的函数但是两者有区别1.pairs遍历table中的所有的key-vale 而ipairs会根据key的数值从1开始加1递增遍历对应的table[i]值a = {[1] = "a1", [2] = "a2", [3] = "a3", [5] = ...
阅读全文
摘要:--实现拷贝对象功能function clone(object) local lookup_table={} local function _copy(object) if type(object)~="table" then return objec...
阅读全文
摘要:在Lua中我们常常使用函数来描述迭代器,每次调用该函数就返回集合的下一个元素.迭代器需要保留上一次成功调用的状态和下一次成功调用的状态,可以通过闭包提供的机制来实现这个任务(闭包中的外部局部变量可以用来保存状态)。一个典型的闭包结构包含两个函数:一个是闭包自己,另一个是工厂(创建闭包的函数).fun...
阅读全文
摘要:调用函数的时候,如果参数列表为空,必须使用()表明是函数调用。例外:当函数只有一个参数并且这个参数是字符串或者表构造的时候,()可有可无。print "hello world"f{x=10,y=20}等价于f({x=10,y=20})Lua函数实参和形参的匹配与赋值语句类似,多余部分被忽略,缺少部分...
阅读全文
摘要:Account={balance=0}function Account.withdraw(self,v) self.balance=self.balance-venda={balance=0,withdraw=Account.withdraw}a.withdraw(a,260)--面向对象语言...
阅读全文
摘要:father = { house=1}son = { car=1}setmetatable(son, father) --把son的metatable设置为fatherprint(son.house)输出的结果是nil,但如果把代码改为father = { house=1}fath...
阅读全文
摘要:1.习惯上,Lua的下表从1开始,只有这样,才可以使用标准库的函数--链表list=nillist={next=list,value="v"}list={next=list,value=88}local l=listwhile l do print(l.value) l=l.nexten...
阅读全文
摘要:--元表和元方法给lua里的值设定一些操作,让我们可以对这些操作自定义--创建一个新的table变量时,它是不存在元表的--在Lua中,只能设置table的元表,其他类型的值的元表,只能通过C代码来完成local mt={}mt.__add=function(t1,t2)print("i am re...
阅读全文
摘要:function newCounter() local i=0 return function() i=i+1 return i endendc1=newCounter()print(c1())print(c1())以上代码输出1,2闭包=函数+引用环境...
阅读全文