Par défaut, en Lua, les variables sont globales, contrairement à la plupart des autres langages où elles sont locales par défaut :
|
|
Si l’on souhaite qu’une variable n’existe que dans le bloc où elle est définie, il faut utiliser le mot-clé local :
|
|
Je vous recommande vivement d’utiliser la forme locale. Même si elle peut sembler moins pratique, elle vous évitera de nombreux problèmes à long terme.
Variables locales dans les fonctions
Les paramètres passés à une fonction sont automatiquement locaux, tout comme les variables déclarées avec local
:
|
|
Il est très fortement conseillé de privilégier les variables locales autant que possible.
Exemple d’un comportement à éviter
|
|
Dans cet exemple, la variable a = 5
a été écrasée dans la fonction maFunc()
par a = 6
, car elle n’était pas déclarée locale. Sur un petit script, ce genre d’erreur peut être repérée facilement. Mais dès que votre programme dépassera 500 ou 600 lignes — surtout en collaboration — ce type de bug peut devenir très difficile à traquer.
Utiliser local
permet d’éviter ce genre de conflits et rend votre code plus clair, modulaire et sûr.