在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1、Metatable允许我们改变表的行为。 使用 Metatables 我们可以定义 Lua 如何计算两个 table 的相加操作 a+b。当 Lua 试图对两个表进行相加时,他会检查两个表是否有一个表有 Metatable,并且检查 Metatable 是否有__add 域。如果找到则调用这个__add函数(所谓的 Metamethod)去计算结果。 2、任何一个表都可以是其他表的Metatable,多个表可以共享一个Metatable(描述他们共同的行为),一个表也可以是自己的原表(描述它的私有行为)。 3、lua中选择原方法的原则:第一个参数存Metamethod在用第一个参数的Metatable,与第二个参数无关,如果第一个参数不存在,用第二个参数的,都不存在报错。 4、算术域:__add、__mul、__sub、__div、__unm(负)、__pow、__concat(定义连接行为) 5、用法: setmetatable({}, {__index = {}}) 6、利用lua中的metatable中的算术域__add,实现两个集合的交集。
温馨提示: 联系方式:QQ:844262776 微信:15225601365
|
请发表评论