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
Était-ce utile?

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);
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top