我正在开发一个使用 Lua 作为脚本语言的 C++ 编写的项目。为了方便调试,我们实现了一个网络调试器,它接收 Lua 代码,运行它,在 Json 中编码返回值并将该字符串发回。
我设法为表实现了这一点,但现在我被存储在用户数据中的变量困住了。例如,我有这个 Lua 代码:
Elements.Avatar.testVar = 5
Elements.testVar = 15
return Elements
// result
{
"result0": "{Application:userdata; Avatar:userdata; Physics:userdata; testVar:15; }"
}
Application
,Avatar
并且Physics
是在 C++ 中创建的对象。然而,这两个testVars
是在上面的脚本中创建的。
Elements
是一个表格,所以我可以列出所有元素,但Avatar.testVar
似乎是隐藏的,因为Avatar
是LUA_TUSERDATA
.
有谁知道如何检测已添加到 Lua 中的用户数据的变量?