【发布时间】:2013-05-17 04:34:05
【问题描述】:
在我的 C 中,我创建了一个全局元表:
luaL_newmetatable(L, "WebSocketClient");
lua_pushliteral(L, "close");
lua_pushcfunction(L, lws_sock_close);
lua_rawset(L, -3);
lua_pop(L, 1);
但在我的 Lua 中,我无法为其添加函数:
function WebSocketClient:read_frame()
--foo
end
我收到此错误:
attempt to index local 'WebSocketClient' (a nil value)
如何使这个元表可用于我的 Lua 代码,以便向它添加更多功能?
【问题讨论】:
-
在 Lua 中元表的处理方式不同。您通常希望创建一个带有函数的普通表,然后将其传递给
setmetatable函数,该函数应该对其进行转换。看here。 WRTluaL_newmetatable, this short doc 可能会有所帮助。 -
我是凭记忆输入版本的,但我错了,我用的是5.1.5。
标签: lua