格式如下:
int len=luaL_len(L,-1); for(int i=1;i<=len;i++){ lua_rawgeti(L,-1,i); //do something... //此时数据位于-1位置 lua_pop(L,1); }
lua_pushnil(L); while (lua_next(L, -2)) { // 此时栈上 -1 处为 value, -2 处为 key //do something... lua_pop(L, 1); }
遍历 table 的过程中不要直接对处于 -2 位置的 key 做 lua_tostring 操作,除非你确信现在这个 key 就是字符串类型,否则下一次执行 lua_next 就等着意外吧。