Lua: Le tutoriel  wxWidgets
Lua
Les itérateurs: pairs(t) et ipairs(t).

Tout ce qui a précédé était là simplement pour essayer de vous faire comprendre la façon dont fonctionne un itérateur.

Sauf cas exceptionnel, vous ne devriez pas avoir à vous en servir, mais il est toujours bon de bien comprendre le pourquoi du comment des choses.

En résumé, deux fonctions Lua sont à votre disposition lorsque vous aurez besoin de parcourir une table ou une liste de noms.

Il s'agit des fonctions pairs() et ipairs(), qui s'utilisent de la façon suivante.

	for k, v in pairs(t) do .. corps .. end
	
	for i, v in ipairs(t) do .. corps .. end
				
Cela se lit de la façon suivante:
Pour chaque élément (k ou i) dans la table(t) faire
... ici votre code ...
fin
k = key (clé) (lors d'un index alphabétique)
v = valeur
t = table (ou liste de noms)
i = index (lors d'un index numérique)

Chaque fonction va parcourir TOUTE la table (t) en relevant à chaque index ou chaque clé, la valeur qui va avec.

Dans le corps de la fonction, on fait ce dont on a besoin à partir de ces clé-valeur ou index-valeur.
Comme par exemple:

	if i == 25  then print( v ) end
		ou
	if k == "fleurs" then print( v ) end
				
pairs() (key-valeur)
Cette fonction s'utilise dans le cadre de tables dont les index sont alphabétiques ou numériques ou les deux ou lorsque l'on est pas certain de la nature des index.
L'affichage se fera dans un ordre indéfini.

ipairs() (index-valeur)
Cette fonction s'utilise dans le cadre de tables dont les indexs sont numériques et uniquement numériques.
L'affichage se fera dans un ordre croissant.
-- Pour exécuter cet exemple, rajouter le code wxWidgets N°3

	local table = {3, banane = "jaune", 10, pi = 3.14159, 17,
                   fruit = "banane"}
	for key, valeur in pairs(table) do
	print(key, valeur)	--> 1		3
						--> 2		10
						--> 3		17
						--> pi		3.14159
						--> fruit	banane
						--> banane	jaune
	end
				
-- Pour exécuter cet exemple, rajouter le code wxWidgets N°3

	local table = {3, "cinq", 10, "vingt-cinq", 17, 18}
	for index, valeur in ipairs(table) do
	Affiche(index, valeur)	--> 1	3
							--> 2	"cinq"
							--> 3	10
							--> 4	"vingt-cinq"
							--> 5	17
							--> 6	18
	end
				

Vous remarquerez qu'avec pairs les résultats ne sont pas dans le même ordre que celui de la table.

Alors qu'avec ipairs les résultats sont affichés dans le même ordre que celui de la table.

Rappelez-vous:
pairs = key, valeur
ipairs = index, valeur
( le i de ipairs est le même que celui d'index... )
logo wxWidgets Le savoir ne vaut que s'il est partagé par tous...
logo-internet_32x32.png Dernière mise à jour, le 20 novembre 2012.
Valid XHTML 1.0 Transitional

wxlualogo
Flèche haut
Flèche gauche
Flèche haut
Flèche droite