Передача переменной в функцию по ссылке в 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()
→ Ссылка