gpt4 book ai didi

lua - Lua中如何将相同的代码放到不同的元方法中?

转载 作者:行者123 更新时间:2023-12-04 08:00:51 25 4
gpt4 key购买 nike

下面的代码有效,但我在 2 个元方法中有相同的代码。是否可以制作 __add__sub有相同的代码而不重复吗?

local function doMath(tbl, num, op)
local sum = 0
for _, v in next, tbl do
sum = sum + tonumber(v) or 0
end
return op == 'add' and sum + num or sum - num
end

local mt = {
__add = function(t, n)
return doMath(t, n, debug.getinfo(1, 'n').name)
end,

__sub = function(t, n)
return doMath(t, n, debug.getinfo(1, 'n').name)
end
}

print(setmetatable({1, 2, 3}, mt) + 5)

最佳答案

local someFunc = function (a, b) end

local mt = { __add = someFunc, __sub = someFunc}

关于lua - Lua中如何将相同的代码放到不同的元方法中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66481675/

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