Имитация + = в Lua, это возможно? - PullRequest
19 голосов
/ 22 октября 2011

Кто-то сказал мне о перегрузке операторов, но я даже не уверен, как бы я начал это делать. То, что я пытаюсь сделать, это изменить:

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

в

table["key"]+=12345

Или даже с использованием функции, это было бы замечательно. Я искал, но не могу найти ответ, поэтому я надеюсь, что кто-то здесь может направить меня к источнику или быть в состоянии ответить на вопрос напрямую. Если в конечном итоге это будет кратчайший путь, то, я полагаю, я буду придерживаться этого. Я просто пытаюсь сохранить как можно больше нажатий клавиш, поскольку у меня есть сотни мест, где это может быть реализовано. Спасибо!

1 Ответ

15 голосов
/ 22 октября 2011

Вы хотите это?

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

Используйте его следующим образом:

increment(table,"key",12345)

или, если хотите увеличить на 1, просто как

increment(table,"key")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...