还有其他lua_setfield方法吗?(路亚C/C++)

Any alternative ways to lua_setfield? (Lua C/C++)

本文关键字:路亚 C++ 其他 lua 方法 setfield      更新时间:2023-10-16

我正在使用lua C函数,但我不能使用lua_setfield。我需要一些基本上可以做lua_setfield做的事情的东西。我可以使用除lua_setfield之外的任何其他lua函数。有什么帮助吗?

如果i是正数(即绝对(,则lua_setfield(L,i,k)等价于

lua_pushstring(L,k);
lua_insert(L,-2);
lua_settable(L,i);

如果i为负数(即相对(,则lua_setfield(L,i,k)等价于

lua_pushstring(L,k);
lua_insert(L,-2);
lua_settable(L,i-1);

下面的代码结合了这两者:

lua_pushstring(L,k);
lua_insert(L,-2);
lua_settable(L,i-(i<0));