繁体   English   中英

如何在lua中检查userdata

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM