gpt4 book ai didi

lua - 链 Lua 元表

转载 作者:行者123 更新时间:2023-12-01 01:23:30 25 4
gpt4 key购买 nike

我遇到的情况是,两个库 L、M 正在尝试为 _G(分别命名为 mL、mM)设置元表。元表中唯一的东西是 __index。

我如何链接这两个元表,以便如果一个中的 __index 失败,它会调用另一个中的索引?

最佳答案

有一个元表同时存储 mLmM ,如果返回 nil ,检查另一个:

local metatbl = {}
metatbl.tbls = {mL, mM};
function metatbl.__index(intbl, key)
for i, mtbl in ipairs(metatbl.tbls) do
local mmethod = mtbl.__index
if(type(mmethod) == "function") then
local ret = mmethod(table, key)
if ret then return ret end
else
if mmethod[key] then return mmethod[key] end
end
return nil
end
end

setmetatable(_G,metatbl)

关于lua - 链 Lua 元表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8109790/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com