如何在 Lua 和 C++ 之间传递二维表格

我搜索了数小时来将Lua中的二维表格传递到 C++ 中。Lua的文档真的很差。

我使用 Lua 5.1 并想要将这个表格传递给 C++:

local costs = {
[0] = {
    1.0,
    1.0,
    1.0,
    1.0,
    1.41,
    1.41,
    1.41,
    1.41,
},
[1] = {
    2.0,
    2.0,
    2.0,
    2.0,
    2.41,
    2.41,
    2.41,
    2.41,
}

这对于简单的一维表格可以工作,但我甚至无法使用它获取键。

int len = lua_rawlen(L, 1);
for (int i = 0; i < len; i++)
{
  lua_pushinteger(L, i + 1);
  lua_gettable(L, -2);
  printf("键 %i\n", lua_tointeger(L, -1));
  lua_pop(L, 1);
}

如何正确地获取这个表格?

点赞
用户10580287
用户10580287

我找到了这个:在C中迭代Lua多维表

它可以工作。但如果有更好的解决方案,我真的很想学习。我更喜欢使用带有大小的for循环,但是 lua_rawlen 总是返回1。

2019-07-10 17:48:25