首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在lua中自定义++,-=,+=运算符?

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

Stack Overflow用户
提问于 2021-08-24 17:03:45
回答 1查看 72关注 0票数 1

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

我正在尝试,下面是我的代码:

代码语言:javascript
复制
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++)

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-24 17:07:21

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

您的__call元方法(如果它确实有效)将允许您调用x("++") (即,它允许您呼叫号码),而不是x++,并且它将在不修改x的情况下返回x+1。

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

代码语言:javascript
复制
opTable["++"] = function(int)
    return int + 1
end

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68911370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档