在 Lua table 中我们可以访问对应的key来得到value值,但是却无法对两个 table 进行操作。
因此 Lua 提供了元表(Metatable),允许我们改变table的行为,每个行为关联了对应的元方法。
例如,使用元表我们可以定义Lua如何计算两个table的相加操作a+b。
设置元表(setmetatable)
--以下实例演示了如何对指定的表设置元表:
mytable = {} -- 普通表
mymetatable = {} -- 元表
setmetatable(mytable,mymetatable) -- 把 mymetatable 设为 mytable 的元表
--以上代码也可以直接写成一行:参数分别是 普通表 元表
mytable = setmetatable({},{})
--以下为返回对象元表:(getmetatable:获取元表)
getmetatable(mytable) -- 这回返回mymetatable(原表)
网友评论