【问题标题】:How to make a custom ++, -=, += operator in lua?如何在lua中制作自定义++、-=、+=运算符?
【发布时间】:2021-08-24 17:03:45
【问题描述】:

如何在 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++)

我也想知道怎么做+=-=,或者可能怎么做/=*=%=

【问题讨论】:

    标签: lua operators


    【解决方案1】:

    你不能在 Lua 中自定义操作符。这是不可能的。

    您的__call 元方法(如果它确实有效)将允许您调用x("++")(即它允许您拨打一个号码),而不是x++,它会返回x+1 而无需修改x。

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

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

    但它仍然不会做你想做的事。语法仍然是x("++"),它会返回x+1,不会修改x。

    【讨论】:

    • 哦,谢谢,但遗憾的是 lua 不支持直接使用自定义运算符
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-03
    • 1970-01-01
    • 2011-09-01
    • 2019-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多