« Initiation au Lua avec Scribunto/Exercices/Sur les fonctions basiques » : différence entre les versions
Contenu supprimé Contenu ajouté
→Exercice 5-1 : rédaction |
→Exercice 5-1 : rédaction |
||
Ligne 11 :
== Exercice 5-1 ==
Un des problèmes possibles, lorsqu'on écrit une grande table dont les clés sont des chaînes de caractère
Soit la table suivante :
Ligne 22 :
Nous voyons que nous avons utilisé la clé "Poisson" deux fois.
Écrire une fonction '''p.
Que remarque-t-on ?
Ligne 29 ⟶ 31 :
La solution de l'exercice se trouve dans le [[module:Doublon]].
<syntaxhighlight lang="lua">
local p = {}
local Categorie = { ["Prénom"] = "Christine", ["Mois"] = "Avril", ["Métier"] = "Boulanger", ["Poisson"] = "Truite",
["Métal"] = "Argent", ["Poisson"] = "Sardine", ["Planète"] = "Saturne", ["Instrument"] = "Piano"}
function p.listecle()
local reponse = "<u>Description de la table</u>"
for index, objet in pairs(Categorie) do
reponse = reponse.."<br />à la clé numéro "..index.." se trouve l'objet "..objet.."."
end
return reponse
end
return p
</syntaxhighlight>
'''<nowiki>{{#invoke:Doublon|listecle}}</nowiki>''' nous donne :
{{#invoke:Doublon|listecle}}
Nous remarquons que l'erreur n'est pas signalée. Une des deux clés "Poisson" n'a, tout simplement, pas été enregistrée. Lorsque l'on écrit une longue table, nous devons donc faire particulièrement attention de ne pas utiliser deux fois la même clé car cette erreur n'est pas signalé et l'une des deux clé ne sera pas prise en compte.
}}
|