Как создать таблицу Lua с именем C-API
Как создать таблицу Lua из C-API следующим образом:
TableName = {a, b, c}
Как установить имя таблицы? Я только знаю, как создать таблицу и поставить значения, но не знаю, как установить имя таблицы.
Код для создания таблицы без имени:
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");
1 ответ
Решение
Все, что вам нужно, это добавить эту строку в конце
lua_setglobal(L, "TableName");
Однако ваш C-код не эквивалентен вашему Lua-коду. Код C соответствует этому коду Lua:
TableName = { a=1, b=2, c=3 }
Если вы хотите, чтобы C-код эквивалентен
TableName = {"a", "b", "c"}
использование
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);