我使用Lua实现一些功能,结果放在表 s 中并返回到C ++代码。例如,在Lua的末尾,我将这些表返回给C ++
return names, ages, courses
现在在C ++中,我需要读取返回的表中的元素。我怎么知道表的名称,以便我知道要检索哪些元素?换句话说,遵循sudo代码说明我想做的事情:
if table_name == "names": //some commands can realize this?
lua_getfield(L, -1, "Tom");
the_name = lua_tostring(L, -1);
cout << the_name << endl;
Lua_pop(L, 1);
elif table_name == "ages": //similar to last comment...
lua_getfield(L, -1, "girls");
the_age = lua_tostring(L, -1);
....... //some operations
任何人都有任何想法?顺便说一句,我在win7上使用Lua5.3.1
答案 0 :(得分:1)
您不会知道先前存储表的变量名,但您的Lua函数会按特定顺序返回它们。在C ++中,这些表放在堆栈中,因此courses
是最高值,ages
是下一个。
答案 1 :(得分:0)
您可以在所有表格中包含一个包含其名称/类型的字段。