Question
Je connais: http://lua-users.org/wiki/SimpleLuaApiExample
Il me montre comment construire une table (clé, valeur) d'entrée de paire par entrée.
Supposons au contraire, je veux construire une table gigantesque (disons quelque chose d'une table d'entrée 1000, où les deux clés et la valeur sont des chaînes), est-il un moyen rapide de faire en lua (au lieu de 4 appels func par entrée:
push
key
value
rawset
La solution
Qu'est-ce que vous avez écrit la manière rapide pour résoudre ce problème. tables Lua sont brillamment conçus et assez vite qu'il n'y a pas besoin d'une sorte de faux " Hint » pour dire: « J'attends ce tableau pour pousser à contenir 1000 éléments. »
Autres conseils
Pour les clés de chaîne, vous pouvez utiliser lua_setfield
.
Malheureusement, pour les tables associatives (touches de chaîne, clés non consécutives entiers), non, il n'y a pas.
Pour les tables de type réseau (où l'indexation régulière entier 1 ... N est utilisé), il existe des fonctions performances optimisées, lua_rawgeti
et lua_rawseti
: http://www.lua.org/pil/27.1.html
Vous pouvez utiliser CreateTable pour créer une table qui a déjà le nombre de machines à sous. Cependant, après cela, il n'y a aucun moyen de le faire plus rapidement que d'autres
for(int i = 0; i < 1000; i++) {
lua_push... // key
lua_push... // value
lua_rawset(L, tableindex);
}