任何替代lua_setfield的方法? (Lua C / C ++)

时间:2018-01-03 17:38:31

标签: c++ lua

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

1 个答案:

答案 0 :(得分:1)

如果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));