提问人:DrDreadful 提问时间:9/17/2023 最后编辑:DrDreadful 更新时间:9/17/2023 访问量:30
如何使用其 C-API 将空表添加到 Lua 中的现有表中?
How to add an empty table to an existing table in Lua using its C-API?
问:
我问题的核心细节是:我不知道该怎么做。
我遇到了我想通过向 Lua 中的现有表添加表来尝试解决的问题。
阻止我自己解决问题的主要困难是无知,尽管我尽了最大努力,但未能找到任何对我解决问题有用的互联网搜索结果。
除其他外,我尝试了以下方法:
lua_getglobal(L, "OuterTable");
lua_createtable(L, 0,0);
lua_pushliteral(L, "InnerTable");
lua_settable(L,-2);
在考虑了这个问题的公认答案后,我预计“InnerTable”会被添加到“OuterTable”中:
它也用于将表添加到表中,尽管是新创建的表。lua_settable
我还浏览了 Lua 编程,颜色表示例,但我也无法用那个来解决它。
最小可重现示例:
测试.lua
OuterTable = {
ExampleInnerTable = {}
}
C 中的测试平台(我使用 Lua 5.3,但我的发行版是以一种特殊的方式设置的,所以......我不知道你会如何包含它,要小心)
#include <lua5.3/lua.h>
#include <lua5.3/lualib.h>
#include <lua5.3/lauxlib.h>
int main(int argc, char *argv[])
{
lua_State* L;
L = luaL_newstate();
luaL_openlibs(L);
luaL_dofile(L, "test.lua");
lua_getglobal(L, "OuterTable");
int c = lua_gettop(L);
lua_newtable(L);
lua_pushliteral(L, "InnerTable");
lua_settable(L,c);
return 0;
}
基本上,我想添加另一个表,一个像OuterTable
ExampleInnerTable
期望的结果
OuterTable = {
ExampleInnerTable = {}
,InnerTable = {}
}
答: 暂无答案
下一个:表值在不应该返回时返回 nil
评论