如何在 lua 中自定义 ++、-=、+= 运算符?

How to make a custom ++, -=, += operator in lua?

如何在 lua 中自定义 ++-=+= 运算符?因为它缺少 increment/decrementing 运算符。

我正在尝试,这是我的代码:

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++)

我也想知道如何做 +=-=, 或者如何做 /=*=%=

您无法在 Lua 中创建自定义运算符。不可能。

你的 __call 元方法(如果它确实有效)将允许你调用 x("++")(即它允许你调用一个号码),而不是 x++,它会 return x+1 不修改 x.

opTable["++", int + 1] 作为 Lua 语句没有任何意义。你可能想要这样的东西:

opTable["++"] = function(int)
    return int + 1
end

但它仍然无法如您所愿。语法仍然是 x("++") 并且它将是 return x+1 并且它不会修改 x.