
lua
Lua 是一个小巧的脚本语言。它是巴西里约热内卢天主教大学三人所组成的研究小组于1993年开发的。其设计目的是为了通过灵活嵌入应用程序中从而为应用程序提供灵活的扩展和定制功能。
yxlalm
这个作者很懒,什么都没留下…
展开
-
lua 面向对象(继承、封装、多态)
封装Object={}Object.id=1function Object:new() local obj = {} self.__index=self setmetatable(obj,self) return objendlocal myObj = Object:new()myObj.id=3print(myObj)print(Object)print(myObj.id)继承obj.base=self 保存基类方法function Object:Sub..原创 2020-12-21 00:56:46 · 250 阅读 · 0 评论 -
lua 元表(Metatable)基础知识知多少
在lua中我们无法对两个table进行操作,例如两个表相加、相减、串连等操作。因此 Lua 提供了元表(Metatable)和元方法,允许我们操作改变table,每个操作关联了对应的元方法。设置元表setmetatable(mytable,mymetatable) 对指定 mytable设置元表(mymetatable)。mytable={}mymetatable={}setmetatable(mytable,mymetatable) temp=getmetatable(mytable).原创 2020-12-21 00:55:17 · 344 阅读 · 0 评论 -
lua 协程(协同程序)coroutine
什么是协同(coroutine)?Lua 协同程序(coroutine)与线程比较类似:拥有独立的堆栈,独立的局部变量,独立的指令指针,同时又与其它协同程序共享全局变量和其它大部分东西。协同是非常强大的功能,但是用起来也很复杂。线程和协同程序区别线程与协同程序的主要区别在于,一个具有多个线程的程序可以同时运行几个线程,而协同程序却需要彼此协作的运行。在任一指定时刻只有一个协同程序在运行,并且这个正在运行的协同程序只有在明确的被要求挂起的时候才会被挂起。协同程序有点类似同步的多线程,在等待同一个线原创 2020-12-21 00:53:22 · 154 阅读 · 0 评论 -
lua table表常用操作
模拟数组a={2,3,4,5,6}for i=1,#a do print(a[i])end模拟字典--声明a={["name"]="姓名",["age"]=19,["1"]=5}--访问print(a["name"])print(a.age)--赋值a["name"]="asd"print(a.name)--新增a.sex=0print(a.sex)--删除a.sex=nilprint(a.sex)--遍历for k,v in pairs(a) do ..原创 2020-12-21 00:50:53 · 269 阅读 · 0 评论 -
lua 迭代器遍历
1. ipairs遍历ipairs是从索引1开始进行遍历的,小于等于0的索引值是得不到的。只能遍历连续索引,如果中间断序了是无法遍历后面的内容print("************ipairs迭代器遍历****************")a={[0]=1,2,[-1]=3,4,5}for i,v in ipairs(a) do print("ipairs遍历键值"..i..'_'..v)enda={[0]=1,2,[-1]=3,4,5,[5]=5}for i,v in ipairs原创 2020-12-21 00:49:00 · 202 阅读 · 0 评论 -
lua 多脚本执行、卸载
全局变量和本地变量--全局变量a=1--本地变量 function test( ... ) local x = 1 print(x) endtest()print(x) 多脚本执行require("test")print(testA)脚本卸载print(package.loaded["test"])package.loaded["test"]=nilprint(package.loaded["test"])_G表for k,v in pai.原创 2020-12-21 00:47:31 · 1152 阅读 · 0 评论 -
lua 函数(可变参数、多返回值接收、嵌套闭包)
可变参数 可变参数用表接收进行下一步处理。function F7(...) arg={...} for i=1,#arg do print(arg[i]) endendF7(1,"a","123",true)多返回值接收 function F4() return "111",434,true end temp1,temp2,temp3=F4() print(temp1,temp2,temp3)嵌套闭包定义:通过调用含有一个内部函数加上该外部函数..原创 2020-12-21 00:45:26 · 979 阅读 · 0 评论