Mémo du langage lua

Mémo du langage lua

(Photo par Ammar ElAmir on Unsplash)

Lua est un langage de script créé en 1993 par une équipe de chercheurs de l’université de Rio de Janeiro. Ce langage s’est taillé une grosse réputation dans le domaine des scripts de jeux vidéo, en grande partie grâce à sa syntaxe très facile d’accès et à son intégration simple dans des applis en C++. Voici un petit mémo des principales structures du langage.

Les commentaires

Un commentaire commence par -- et s'étend jusqu'à la fin de la ligne.

Pour faire des commentaires multi-lignes, il faut commencer par [[ et finir par ]].

Les variables

Pour déclarer une variable, il suffit de l’initialiser. Par défaut, les variables sont globales sauf si on emploie le mot-clé local avant la déclaration.
Toutes les variables numériques sont des réels (doubles sur 64 bits).
Il est également possible d’utiliser des chaînes avec "des doubles quotes", 'des simples quotes' ou des chaînes multilignes avec des [[ doubles crochets ]].
Il existe également un type booléen dont les valeurs possibles sont true ou false.
Pour libérer une variable, il faut lui affecter la valeur nil (lua utilise un garbage collector).

Structures conditionnelles

La structure conditionnelle s’utilise de la façon suivante :

if condition then
action
else
action sinon
end

La condition else est optionnelle.

Boucles

Lua supporte les boucle for, while et repeat.
Leur structure est la suivante :

for _variable_= borne début_,_borne fin_,_pas do
bloc de code
end

Les bornes de début et de fin sont obligatoires et seront exécutées toutes les deux. Le pas est optionnel, s’il n’est pas précisé, il vaut 1.

La boucle while s'écrit de la façon suivante :

while _condition do
bloc de code
end

La boucle repeat s'écrit de façon similaire avec la condition à la fin :

repeat
bloc de code
until condition

Opérations sur les booléens

Lua accepte les opérateurs booléens classiques : and, or et not (en toutes lettres !).

Fonctions

La déclaration d’une fonction peut se faire soit de façon traditionnelle :

function _nom_de_fonction_( paramètres )
corps de la fonction end

soit par affectation d’une variable :

variable = function( paramètres )
corps de la fonction end

Le renvoi de valeur se fait avec return.
Il est possible de retourner une fonction et ainsi de faire des closures (lua réalise la capture des variables encloses).
Lors d’un appel de fonction, si le nombre de paramètres effectif est trop grand, les paramètres en excès sont ignorés. Si le nombre est trop petit, les paramètres manquants valent nil. Cette règle s’applique aussi aux affectations.

Les fonctions sont un type de premier rang, comme les variables elles peuvent être locales ou globales (par défaut).