Lua笔记13 table 的__add和__index 方法

--[[ 算数类的元表,+ 方法的实现]]
tbA={1,3}
tbB={5,7}

tbmetaformytable={}

tbmetaformytable.__add=function(t1,t2)
	for _,var in ipairs(t2) do
		table.insert(t1,var)
	end
	
	return t1
	
end

setmetatable(tbA,tbmetaformytable)

tbSum=tbA+tbB

for _,v in ipairs(tbSum) do
	print(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 ob

end

--定义一个__index 方法
windows.mt.__index=function(tb,key)
		return windows.default[key]
	
end


local winInst=windows.new({x=10,y=10})
print(winInst.x)
print(winInst.y)
print(winInst.width)
print(winInst.height)


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值