码迷,mamicode.com
首页 > Web开发 > 详细

lua中的metatable和metamethod

时间:2015-04-24 18:06:15      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:

--元表和元方法给lua里的值设定一些操作,让我们可以对这些操作自定义
--创建一个新的table变量时,它是不存在元表的
--在Lua中,只能设置table的元表,其他类型的值的元表,只能通过C代码来完成
local mt={}
mt.__add=function(t1,t2)print("i am result")end
local t1={}
local t2={}
setmetatable(t1,mt)
setmetatable(t2,mt)
local result=t1+t2

 

a={numerator=2,denominator=3}
b={numerator=4,denominator=7}

op={}--metatable
function op.__add(f1,f2)
    ret={}
    ret.numerator=f1.numerator*f2.denominator+f1.denominator*f2.numerator
    ret.denominator=f1.denominator*f2.denominator
    return ret
end

setmetatable(a,op)
setmetatable(b,op)

s=a+b
print(s.numerator,s.denominator)--26,21

 

lua中的metatable和metamethod

标签:

原文地址:http://www.cnblogs.com/ljygoodgoodstudydaydayup/p/4453676.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!