【发布时间】:2010-10-18 03:18:14
【问题描述】:
我有一个具有特定元表类型的 Lua 用户数据对象(例如 "stackoverflow.test")。从 C 代码中,我希望能够准确检查它是哪种类型,并根据结果表现出不同的行为。是否有一个很好的方便功能(类似于luaL_checkudata,但如果答案不是您想要的,则不会出错)让我查询用户数据的元表类型名称?如果没有,我想我需要使用lua_getmetatable,但是我有点不清楚如何确定刚刚添加到堆栈中的元表的名称。
澄清一下:我使用的是 Lua 5.1,其中 luaL_checkudata 的行为发生了变化。我知道在 5.0 中它不会出错。
【问题讨论】:
-
看来lua 5.2已经找到你要的东西了:luaL_testudata