Lua中的元表概念

Lua中的元表( metatable)概念

元表 是一个(普通的)Lua 表,它将标准操作映射成自定义的函数。类似于操作符重定义。
元表的键值称为事件;值(换而言之就是函数)称为元方法

 setmetatable()getmetatable() 分别对对象的元表进行修改和查询。每个表和 userdada 对象都可以具有自己的元表。其他的则没有元表之一说。
引入元表的好处,其实就像是c++中的sturct,在定义了数据类型后,还可以附加一些对数据的操作。

在lua中某个表需要对其元表做相应的增添 add 方法;方法:

mt = {}
function String(string)
  --对{value = s or ''}增添mt元表
return setmetatable({value = string or ''}, mt)
end

-- The first operand is a String table
-- The second operand is a string
-- .. is the Lua concatenate operator
function mt.__add(a, b)
return String(a.value..b)
end

s = String('Hello')
print((s + ' There ' + ' World!').value )
result :
Hello There World!
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值