Можно объяснить, почему данный код не работает

Страницы: 1
RSS
Можно объяснить, почему данный код не работает
 
Вот код:
Код
  lua_newtable(LuaState);
  lua_pushinteger(LuaState, 1); 
  lua_pushstring(LuaState, PAnsiChar('value1')); 
  lua_settable(LuaState, -3); 
  lua_pushinteger(LuaState, 2); 
  lua_pushstring(LuaState, PAnsiChar('value2'));
  lua_settable(LuaState, -3);
  lua_pushnil(LuaState);
  while (lua_next(LuaState, -2) <> 0) do begin
    key := lua_tostring(LuaState, -2);
    lua_pop(LuaState, 1);
  end;
Проходит 1 итерацию и при следующем вызове lua_next выдает ошибку invalid key to 'next'
если вместь lua_tostring сделать lua_tointeger - работает.
 
https://www.lua.org/manual/5.3/manual.html#lua_tolstring

If the value is a number, then lua_tolstring also changes the actual value in the stack to a string. (This change confuses lua_next when lua_tolstring is applied to keys during a table traversal.)
Страницы: 1
Читают тему
Наверх