摘要: __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) 编辑