如何在lua中检查userdata

gui*_* 桂林 13 c lua

我正在使用inspect.lua检查表到字符串.

但是,如果值是userdata,则返回 <userdata 1>

我真的需要知道userdata类型是什么,userdata值是什么,它对于debuging非常重要,我不想在任何IDE中执行它,我只是想要一些东西可以帮我调试打印人员.

fou*_*nes 13

你不能.

手册:

提供类型userdata以允许任意C数据存储在Lua变量中.userdata值是指向原始内存块的指针.[...]除了赋值和身份测试之外,Userdata在Lua中没有预定义的操作.

如@Eric所示,你可以从Lua做的唯一事情就是检查metatable:

print(inspect(getmetatable(someuserdata)))
Run Code Online (Sandbox Code Playgroud)

如果您使用的是C API,则应该能够注册一个自定义函数,该函数可以打印块所持有的内容.