В данный момент я интегрирую Lua в свой проект, и на пути у меня возникла небольшая проблема с дизайном. В настоящее время, если я хочу получить информацию из своего хост-приложения в сценарии Lua, я вызываю функцию, которую я зарегистрировал в C, следующим образом:
-- Inside lua
local state = host.get_state()
-- Do something with "state"
Теперь проблема в том, что состояние, очевидно, может измениться, и тогда переменная «состояние» будет устаревшей и, скорее всего, недействительной. До сих пор я жил с этим, потому что глобальное состояние не требуется слишком часто. Это более проблематично в следующем сценарии:
local user = host.get_user('id')
host.set_user_flags(user, 'abc')
-- internally "user" is now updated, but to get the accurate information in Lua, I
-- will have to explicitly redo "user = host.get_user('id')" for every operation
-- that accesses this table
Я немного читал о ссылках, и я думаю, что они могут помочь мне с этим, но я не совсем понял это.
Разве нет способа просто разбрасывать указатели, как я могу сделать это на C?