BOR*_*VIK 5 lua lua-c++-connection lua-api lua-table
如何从C-API创建Lua表,如下所示:
TableName = {a, b, c}
Run Code Online (Sandbox Code Playgroud)
如何设置表名?我只知道如何创建表和put值,但不知道如何设置表的名称.
创建没有名称的表的代码:
lua_createtable(L, 0, 3);
lua_pushnumber(L, 1);
lua_setfield(L, -2, "a");
lua_pushnumber(L, 2);
lua_setfield(L, -2, "b");
lua_pushnumber(L, 3);
lua_setfield(L, -2, "c");
Run Code Online (Sandbox Code Playgroud)
您所需要的只是在末尾添加这一行
lua_setglobal(L, "TableName");
Run Code Online (Sandbox Code Playgroud)
但是,您的 C 代码并不等同于您的 Lua 代码。C代码对应于这个Lua代码:
TableName = { a=1, b=2, c=3 }
Run Code Online (Sandbox Code Playgroud)
如果你想要相当于的 C 代码
TableName = {"a", "b", "c"}
Run Code Online (Sandbox Code Playgroud)
使用
lua_pushliteral(L, "a"); lua_rawseti(L, -2, 1);
lua_pushliteral(L, "b"); lua_rawseti(L, -2, 2);
lua_pushliteral(L, "c"); lua_rawseti(L, -2, 3);
Run Code Online (Sandbox Code Playgroud)