[英]How to inspect userdata in lua
我正在使用inspect.lua检查表到字符串。
但是,如果值是userdata,则只返回<userdata 1>
我真的需要知道userdata类型是什么,userdata值是什么,它对于debuging非常重要,我不想在任何IDE中执行它,我只是想要一些东西可以帮助我通过打印人员进行调试。
你不能。
从手册 :
提供类型userdata以允许任意C数据存储在Lua变量中。 userdata值是指向原始内存块的指针。 [...]除了赋值和身份测试之外,Userdata在Lua中没有预定义的操作。
如@Eric所示,你可以从Lua做的唯一事情就是检查metatable:
print(inspect(getmetatable(someuserdata)))
如果您使用的是C API,则应该能够注册一个自定义函数,该函数可以打印块所持有的内容。
如果userdata metatable是使用luaL_newmetatable
创建的, luaL_newmetatable
它包含一个包含userdatas类型的条目__name
(自Lua版本5.3起),请参阅https://www.lua.org/manual/5.3/manual.html#luaL_newmetatable 。 不幸的是,这个功能仍未得到广泛使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.