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

时间:2011-10-21 21:32:54

标签: lua operator-overloading

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

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

table["key"]+=12345

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

1 个答案:

答案 0 :(得分:15)

你想要这个吗?

function increment(t,k,v)
   t[k]=t[k]+(v or 1)
end

按如下方式使用:

increment(table,"key",12345)

或者,如果你想增加1,只需

increment(table,"key")