Lua笔记13 table 的__add和__index 方法

来源:互联网 发布:linux ftp 命令行 端口 编辑:程序博客网 时间:2024/06/03 16:55
--[[ 算数类的元表,+ 方法的实现]]tbA={1,3}tbB={5,7}tbmetaformytable={}tbmetaformytable.__add=function(t1,t2)for _,var in ipairs(t2) dotable.insert(t1,var)endreturn t1endsetmetatable(tbA,tbmetaformytable)tbSum=tbA+tbBfor _,v in ipairs(tbSum) doprint(v)end
--[[ __index 方法实现 ]]windows={}windows.default={x=0,y=0,width=100,height=100,color={r=255,g=255,b=255}}windows.mt={}   --声明元表--声明构造函数function windows.new(ob)setmetatable(ob,windows.mt)  --设置新window 的元表return obend--定义一个__index 方法windows.mt.__index=function(tb,key)return windows.default[key]endlocal winInst=windows.new({x=10,y=10})print(winInst.x)print(winInst.y)print(winInst.width)print(winInst.height)


0 0
原创粉丝点击