一、什么是metatable
lua提供了元表(metatable)来增强table的行为。
通俗来理解就是为某个table设置描述文件,这个描述文件就是metatable,为该table设置metatable能决定该table如何访问、读写,以及两个table之间的操作。
设置元表的方法如下:
mytable = {} -- 普通表
mymetatable = {} -- 元表
setmetatable(mytable,mymetatable) -- 把 mymetatable 设为 mytable 的元表
二、为何需要metatable
metatable可以在不修改原来的table的基础上进行拓展、修改,可以实现类型基层的功能,增强代码复用。
三、metatable两类行为
metatable主要能操作的行为分为两类:
-
table自身的行为
-
两个table之间的行为
四、metamethod元方法
//todo