gpt4 book ai didi

c++ - Lua - 在表中引用函数

转载 作者:行者123 更新时间:2023-11-30 03:02:17 24 4
gpt4 key购买 nike

如果我有一个全局表 Table,它具有函数 getValue()setValue() 等。我可以存储对Table.getValue 还是我必须存储对 Table 的引用然后调用成员函数?

lua_getglobal(L, "Table");

lua_getfield(L, -1, "getValue");
getValueRef = luaL_ref(L, LUA_REGISTRYINDEX);

lua_getfield(L, -1, "setValue");
setValueRef = luaL_ref(L, LUA_REGISTRYINDEX);

lua_pop(L, 1); // Pop "Table" off of the stack

最佳答案

Lua 中没有“成员函数”这样的东西。只有一个函数,它是一个。您可以将函数存储在任何地方,直接在全局表中,在您创建的其他表中,等等。函数(以及与此相关的所有 Lua 值)与它们恰好存储在其中的任何表都没有关联。

如果您想将函数存储在某处(创建“引用”只不过是将其存储在某处),您可以。

仅供引用:直接使用注册表来获取 Lua“引用”并不是一个好主意。我建议创建一个存储在注册表中特定插槽中的表以供引用。当然,我会说,对你正在做的事情使用“引用”并不是一个好主意。

关于c++ - Lua - 在表中引用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10274150/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com