【发布时间】:2013-10-18 19:56:51
【问题描述】:
是否可以将函数作为属性推送到 Lua 中?
现在,我可以将 Get/Set 函数作为字段推送,如下所示:
lua_pushcfunction(L,L_Getter);
lua_setfield(L, -2, "GetValue");
lua_pushcfunction(L,L_Setter);
lua_setfield(L, -2, "SetValue");
然后像这样在 Lua 中调用它们:
MyObject:SetValue("NewValue")
是否可以推送映射到没有元表的 C 函数的属性?我可以将元表中的__index 和__newindex 映射到自定义函数,但我想知道是否有更简单的方法。最终,我想要以下没有元表的语法:
MyObject.CValue = 1
print(MyObject.CValue)
如果没有__index 和__newindex,这可能吗?
【问题讨论】:
-
你试过了吗?它应该可以工作。如果
MyObject是一个表格。 -
@lhf 是的,它只返回
function: 00XXXXXX,这是有道理的,因为该字段已映射到函数。 -
@lhf 这是一个带有元表的表,将
__index指向用户数据的各个字段。