Como posso criar uma tabela em Lua e adicionar valores da API C?
Pergunta
Aqui está o que eu tenho até agora ... cria tabela global chamada "mod", mas não consigo adicionar índices à tabela ...
lua_newtable(L);
lua_setglobal(L,"mod");
Solução
o manual diz:
void lua_setfield (lua_State *L, int index, const char *k);
Faz o equivalente a
t[k] = v
, Ondet
é o valor no índice válido dado ev
é o valor na parte superior da pilha.Esta função mostra o valor da pilha.
Então, mais precisamente: empurre o que quiser adicionar na pilha, depois ligue lua_setfield
. Por exemplo:
lua_pushnumber( L, 42 );
lua_setfield( L, -2, "answer_to_life_universe_and_rest" )
Isso insere o campo "Resposta_to_life ..." com valor 42
na mesa.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow