摘要: 1.require("")也可以 require "" 。注意:他会创建一个全局变量,全局变量在lua中要特别注意,由全局变量的重名产生的bug一般都会被认为是“奇怪的,无法复现的bug” 最好是 local m = require("") XXMgr = m.new() 这种形式 如果要使用全局函 阅读全文
posted @ 2017-10-04 17:13 小张学代码 阅读(244) 评论(0) 推荐(0) 编辑
摘要: __tostring,直接理解就是转化为string,把表转化为string,事实上也是这样,不过表转化为string的具体内容是自己定义的 模型: table = setmetatable({},{__tostring = function(table) --这里写表变为string的具体内容, 阅读全文
posted @ 2017-09-14 23:48 小张学代码 阅读(271) 评论(0) 推荐(0) 编辑
摘要: setmetatable()函数设置元表,getmetatable()函数获取元表 给一个table添加元表: t = {} t_metatable = {__index = {key = "value"}} setmetatable(t, t_metatable) 这个有什么用呢? t里面是 阅读全文
posted @ 2017-09-14 23:29 小张学代码 阅读(1477) 评论(0) 推荐(0) 编辑
摘要: __call元方法可以使定义了他的表可以像函数一样使用,可以被调用,参数是另外一个表,当然这只是一个形式,调用的具体行为是自己定义的,就像重载操作符一样 模型: t = setmetatable({},{__call = function(table, newtable) --body -- 阅读全文
posted @ 2017-09-14 23:25 小张学代码 阅读(584) 评论(0) 推荐(0) 编辑
摘要: 在c++中可以重载操作符,在lua中也有,不过lua是通过元方法实现的,异曲同工,都是一样的 比如c++,重载了+之后,具体做什么都是自己实现,lua也一样 定义操作符行为的元方法有: 例: 1.二元操作符 t = setmetatable({1},{__add = function(mytab 阅读全文
posted @ 2017-09-14 22:58 小张学代码 阅读(1474) 评论(0) 推荐(0) 编辑
摘要: __index元方法是访问,如果表中没有就会进元方法查找(如果有元表的话),如果元方法是表,返回元表的元素;如果元方法是函数,则返回函数的返回值 __newindex元方法就是赋值,如果元表定义了这个元方法,那么新的键值就会保存在元方法指向的表中,如果元方法是函数,就会调用函数(会传入表, 阅读全文
posted @ 2017-09-12 22:44 小张学代码 阅读(535) 评论(0) 推荐(0) 编辑
摘要: rawset函数,网上居然搜不到最基本的用法。。。 rawset(table,key,value) 为table加入key,value 注意:key如果是一个键,则必须是字符串的 例: t = {a = 1} rawset(t,1,2) rawset(t,"b", 阅读全文
posted @ 2017-08-25 23:05 小张学代码 阅读(340) 评论(0) 推荐(0) 编辑
摘要: 如果定义了一个元表 table = {a = 1} setmetatable(table, {__index = {b = 2}}) 那么如果在table中取没有定义的键,那么lua就会在__index元方法里面去找,前提是__index是一个表,她还可以是一个函数 print(table.a,t 阅读全文
posted @ 2017-08-24 22:39 小张学代码 阅读(483) 评论(0) 推荐(0) 编辑
摘要: resume和yield为两个重要的函数,resume启动协程并可以传入参数,第一次传给主函数,第二次作为yield的返回值。然后协程返回数据是通过yield的参数实现的,yield的参数就是resume的返回值 co = coroutine.create(function(a) a 阅读全文
posted @ 2017-06-15 16:28 小张学代码 阅读(629) 评论(0) 推荐(0) 编辑
摘要: 什么是闭包呢? 其实我也不知道什么是闭包,更不知道为什么第一个给这种程序结构起了一个“闭包”的名字是基于什么。。。就像递归一样。。。感觉逼格好高(懵逼。。流鼻涕) 好了,不管这么多,只要知道下面这种程序结构就叫闭包 function foo() local i = 0 function foo2() 阅读全文
posted @ 2017-06-10 23:29 小张学代码 阅读(195) 评论(0) 推荐(0) 编辑