Come posso creare una tabella in Lua, quindi aggiungere i valori dalle API C?
Domanda
Ecco quello che ho finora ... Si crea tabella globale denominata "mod", ma io non riesco a aggiungere indici alla tabella ...
lua_newtable(L);
lua_setglobal(L,"mod");
Soluzione
Il manuale dice:
void lua_setfield (lua_State *L, int index, const char *k);
Fa l'equivalente di
t[k] = v
, dovet
è il valore alla data indice ev
valido è il valore in cima alla pila.Questa funzione apre il valore dallo stack.
Quindi, più precisamente: push quello che vuoi aggiungere nello stack, quindi chiamare lua_setfield
. Ad esempio:
lua_pushnumber( L, 42 );
lua_setfield( L, -2, "answer_to_life_universe_and_rest" )
Questo inserisce il campo "answer_to_life ..." con il valore 42
nella tabella.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow