如何在lua中自定义++,-=,+=运算符?因为它缺少递增/递减运算符。
我正在尝试,下面是我的代码:
local opTable = {}
debug.setmetatable(0, {
__call = function(a, op)
return opTable[op](a)
end
})
opTable["++", int + 1] -- The rest of the code works, this is the main line that's the problem.
local x = 2;
print(x++)我还想知道如何做+=和-=,,或者如何做/=或*=和%=。
发布于 2021-08-24 17:07:21
您不能在Lua中创建自定义操作符。这是不可能的。
您的__call元方法(如果它确实有效)将允许您调用x("++") (即,它允许您呼叫号码),而不是x++,并且它将在不修改x的情况下返回x+1。
opTable["++", int + 1]作为一条Lua语句没有任何意义。你可能想要这样的东西:
opTable["++"] = function(int)
return int + 1
end但它仍然不会做你想要的事情。语法仍然是x("++"),它将返回x+1,并且不会修改x。
https://stackoverflow.com/questions/68911370
复制相似问题