我目前正在将 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 中那样抛出指针?