lua: parcourir toutes les paires dans la table
J'ai un éparses table lua et j'ai besoin d'itérer sur elle. Le Problème est, il semble que lua commence l'itération à 1, et s'arrête dès qu'il trouve une valeur nil. Voici l'exemple:
> tab={}
> tab[2]='b'
> tab[5]='e'
> for i,v in ipairs(tab) do print(i,v) end
> --nothing is output here
> tab[1]='a'
> for i,v in ipairs(tab) do print(i,v) end
1 a
2 b
> --terminates after 2 (first nil value is tab[3])
Est-il possible d'obtenir le résultat souhaité:
1 a
2 b
5 e
source d'informationauteur ewok | 2012-09-25
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser
pairs
au lieu deipairs
.Sera de sortie (dans n'importe quel ordre):
ipairs
effectue une itération séquentielle entier clés, en commençant à 1 et se brisent sur la premièrenil
paire.pairs
effectue une itération sur toutes les paires clé-valeur dans la table. Notez que c'est pas garanti pour itérer dans un ordre spécifique.