Lua中是否可以模拟+=操作符?

19

有人告诉我可以重载运算符,但我甚至不知道该如何开始。我尝试要做的是更改:

table["key"]=table["key"]+12345

转化为

table["key"]+=12345

甚至使用一个函数来实现,那就太好了。我已经搜索过了,但找不到答案,所以我希望有人能指导我去找源头或者直接回答我的问题。如果最终使用全拼写的形式是最短的方式,那么我想我会坚持这种方式。我只是想尽可能地节省击键次数,因为我有成百上千个需要实现这个功能的地方。谢谢!


2
请注意,您可以写table.key而不是table["key"]" - lhf
3
通常情况下,如果你想给 Lua 变量赋值,直接采用长手写法即可,例如 var = var + value。你可以自己编写一个函数来实现它,但实际上你也没省多少敲击键盘的时间。 - Alex
1个回答

15
你想要这个吗?
function increment(t,k,v)
   t[k]=t[k]+(v or 1)
end

使用方式如下:

increment(table,"key",12345)

如果你想要加1,只需要这样做:

increment(table,"key")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接