【问题标题】:Simulate += in Lua, is it possible?在Lua中模拟+=,可以吗?
【发布时间】:2011-12-12 22:06:25
【问题描述】:

有人告诉我关于运算符重载的问题,但我什至不确定我将如何开始这样做。我正在尝试做的是改变:

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

进入

table["key"]+=12345

或者甚至使用一个函数,那就太好了。我已经搜索过,但找不到答案,所以我希望这里有人可以将我引导到源或能够直接回答问题。如果做它的速记形式最终将是最短的方法,那么我想我会坚持下去。我只是想尽可能多地保存击键,因为我确实有数百个地方可以实现这一点。谢谢!

【问题讨论】:

  • 注意你可以写table.key而不是table["key"]
  • 一般来说,如果你想给一个变量 Lua 添加一个值,你就直接做。例如var = var + value。你可以滚动你自己的函数来做到这一点,但你不会为自己节省太多的打字时间。

标签: lua operator-overloading


【解决方案1】:

你想要这个吗?

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

如下使用:

increment(table,"key",12345)

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

increment(table,"key")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-24
    • 2011-07-06
    • 1970-01-01
    • 2015-06-10
    相关资源
    最近更新 更多