setmetatable()

类型 函数
(全局)
返回值
修订版 发行版 2024.3703
关键字 表、元表
另请参见 getmetatable()

概述

设置给定表的元表(您无法通过 Lua 更改其他类型的元表,只能通过 C 更改)。如果 metatablenil,则移除给定元的元表。如果原始元表包含 __metatable 字段,则会引发错误。

此函数返回与函数第一个参数提供的相同的表,现在已设置其元表。

语法

setmetatable( table, metatable )
table (必需)

。您要修改其元表的 Lua 表。

metatable (必需)

。要设置为 table 新元表的 Lua 表。

示例

local t = {}
local mt = { __index = t }

function t.new()
    return setmetatable( {}, mt )
end

return t