web-dev-qa-db-ja.com

Luaで+ =をシミュレートします、それは可能ですか?

誰かが演算子のオーバーロードについて教えてくれましたが、どうやってそれを始めればいいのかさえわかりません。私がやろうとしているのは変更です:

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

table["key"]+=12345

あるいは、関数を使っても、それは素晴らしいことです。検索しましたが、答えが見つかりません。そのため、ここの誰かが私をソースに誘導するか、質問に直接答えることができることを望んでいます。それの長い形式を行うことが最終的にそれを行うための最短の方法になるのであれば、私はそれに固執すると思います。これが実装される場所が何百もあるので、できるだけ多くのキーストロークを節約しようとしています。ありがとう!

19
Josh

あなたはこれを求めている?

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

次のように使用します。

increment(table,"key",12345)

または、1ずつインクリメントする場合は、次のようにします。

increment(table,"key")
15
lhf