Передача переменной в функцию по ссылке в Lua
Подскажите пожалуйста, возможно ли или если возможно, то как передать переменную в функцию по ссылке ?
Типа так:
function my_func(my_int) //Передать указатель или ссылку
my_int =555
end
function main()
my_int =5
my_func(my_int)
message(tostring(my_int)) --хочу увидеть измененное значение
end
Ответы (1 шт):
Автор решения: Mike V.
→ Ссылка
В общем предлагаю 2 пути:
1 - использовать глобальную переменную, тогда ее можно менять везде, и внутри функций, т.е. не передавать через параметр ничего:
function my_func()
my_int = 555
end
function main()
my_int = 5
my_func()
print(tostring(my_int)) -- 555
end
main()
2 - Поскольку через указатель в Lua передается таблица (т.е. копия таблицы не создается), то использовать этот момент:
function my_func(my_int)
my_int.x = 555
end
function main()
local my_int = { x = 5 }
my_func(my_int)
print(tostring(my_int.x)) -- 555
end
main()