在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Lua元表的定义和使用 在Lua table中我们可以访问对应的key来得到value值,但是却无法对两个table进行操作。 因此Lua提供了元表(Metatable),允许我们改变table的行为,每个行为关联了对应的元方法。例如,使用元表我们可以定义Lua如何计算两个table的相加操作a+b。 当Lua试图对两个表进行相加时,先检查两者之一是否有元素,之后检查是否有一个叫”__add”的字段,若找到,则调用对应的值。”__add”等即时字段,其对应的值(往往是一个函数或是table)就是”元方法”。 我的理解就是元表对普通表做了一个行为的扩展,元表的话可以定义一些操作,比如说:这个表跟别的表进行加法操作,访问不存在的索引的这个表的操作,输出这个表的操作等。 跟元表有关的两个重要函数: ①setmetatable(table,metatable)(只能用用于table,如果元表(metatable)中存在__metatable键值,setmetatable会失败) ②getmetatable(table)(用于任何对象,如果元表(metatable)中存在__metatable键,则返回__metatable的值)
输出结果 |
请发表评论