Сделать метод lua, который может напрямую изменять аргументы

Как создать метод, как string.gsub(...) в Луа?

Я хочу, чтобы моя функция могла изменить аргументы, которые я передаю в функцию.

Я знаю, что строковые и числовые переменные типа передаются по имени ( CALL BY VALUE) в функциях,

но я не знаю, как gsub может измениться (применить непосредственно в строковой переменной типа), когда мы пытаемся использовать его как s:gsub(...) s изменение переменной и зависит от gsub(...) метод!

Я хочу создать метод Inc(...) что когда я использую это как ex:Inc() бывший (число вар) Увеличение на 1!!!

Помогите мне реализовать это... Я хочу, чтобы переменная ex (пример: ex = 1) была числовой (не таблица)

ex = 1
ex:Inc()
print(ex) -- ex == 2

Спасибо.

1 ответ

Решение

s:gsub(...) не влияет sкроме случаев, когда вы делаете s=s:gsub(...), Попробуй это:

s="hello"
print(s:gsub("[aeio]","-"))
print(s)

В Lua все аргументы передаются по значению. Нет способа изменить значение переменной внутри функции. (Вы можете изменить содержимое таблицы, но не саму таблицу.)

Другие вопросы по тегам