在Lua中模拟+ =,有可能吗?

Jos*_*osh 19 lua operator-overloading

有人告诉我有关超载操作员的问题,但我甚至不确定如何开始这样做.我试图做的是改变:

table["key"]=table["key"]+12345
Run Code Online (Sandbox Code Playgroud)

table["key"]+=12345
Run Code Online (Sandbox Code Playgroud)

甚至使用一个功能,这将是美妙的.我已经搜索过,但找不到答案,所以我希望有人可以指导我或者直接回答问题.如果做它的缩写形式最终将是最短的方式,那么我想我会坚持这一点.我只是想尽可能多地保存击键,因为我确实有数百个可以实现的地方.谢谢!

lhf*_*lhf 15

你要这个?

function increment(t,k,v)
   t[k]=t[k]+(v or 1)
end
Run Code Online (Sandbox Code Playgroud)

使用方法如下:

increment(table,"key",12345)
Run Code Online (Sandbox Code Playgroud)

或者,如果你想增加1,就像

increment(table,"key")
Run Code Online (Sandbox Code Playgroud)