#lua #operator-overloading
#lua #перегрузка оператора
Вопрос:
Кто-то рассказал мне о перегрузке операторов, но я даже не уверен, как я начну это делать. То, что я пытаюсь сделать, это изменить:
table["key"]=table["key"] 12345
в
table["key"] =12345
Или даже с помощью функции, это было бы замечательно. Я искал, но не могу найти ответ, поэтому я надеюсь, что кто-нибудь здесь сможет направить меня к источнику или сможет ответить на вопрос напрямую. Если в конечном итоге это будет самый короткий способ сделать это, я полагаю, я буду придерживаться этого. Я просто пытаюсь сохранить как можно больше нажатий клавиш, поскольку у меня есть сотни мест, где это было бы реализовано. Спасибо!
Комментарии:
1. Обратите внимание, что вы можете написать
table.key
вместоtable["key"]
.2. Обычно, если вы хотите добавить значение в переменную Lua, вы просто делаете это от руки. например
var = var value
. Вы могли бы использовать свою собственную функцию для этого, но вы не собираетесь экономить много времени на вводе.
Ответ №1:
Вы этого хотите?
function increment(t,k,v)
t[k]=t[k] (v or 1)
end
Используйте его следующим образом:
increment(table,"key",12345)
или, если вы хотите увеличить на 1, просто как
increment(table,"key")