# Introduction au Lua/Introduction

Lua peut s'utiliser à la fois comme un langage de script avec son propre interpréteur local, mais aussi pour produire des scripts pour d'autres plateformes. Cette leçon se concentre sur l'utilisation de Lua avec son propre interpréteur installé localement. et disponible sur Lua.org. Reportez-vous à la prochaine leçon pour l'étude de Lua et sa nouvelle extension Scribunto pour Mediawiki.

## Prérequis

Vous aurez besoin de l’interpréteur Lua que vous pouvez télécharger via le site officiel. L'archive contient le compilateur et quelques exemples de script. Votre système d'exploitation propose probablement une version propre. Le programme est léger, facile et rapide à installer même sur OpenSuse.

## Interpréteur en ligne de commande

L’interpréteur en ligne de commande est un outil utile pour tester rapidement votre code. Il exécute les lignes de commandes dès que vous appuyez sur Enter et retient un bloc d'instructions (comme une condition ou boucle) jusqu’à ce que vous l'ayez terminée par son code end.
Si vous avez installé le programme, ouvrez le terminal et saisissez lua pour démarrer l’interpréteur. Sinon télécharger pour l'installer, où suivez La démo Lua, interpréteur en ligne.
Voici un exemple de session:
La première ligne utilise la fonction print pour renvoyer le message "Hello World" sous forme de chaine de caractères (string). Les nombres et valeurs booléennes peuvent s'afficher par le biais de la même commande print. L’interpréteur ajoute automatiquement un symbole ">" aux blocs pour les indenter sur la ligne de commande. Quand vous avez terminez faites Ctrl-D (EOF) pour fermer l’interpréteur.

## Exécuter et compiler un programme

La méthode précédente est convenable pour tester quelques instructions, pas pour écrire un script. Les scripts sont communément enregistrés dans des fichiers avec le suffixe .lua. Pour exécuter le script on passe le nom du fichier à l’interpréteur en argument de la commande lua. lua monscript.lua
Vous pouvez compiler votre script avec: luac monscript.lua, qui va compiler le code binaire dans un fichier nommé luac.out. Vous utiliserez le paramètre -o pour spécifier le fichier de sortie. Ce qui donne :luac -o outputfile inputfile.

## Variables

La suite de cette leçon vous montre des exemples de code ; à vous de "jouer" en les testant directement sur l’interpréteur ou via un fichier.
Lua attribue de façon dynamique leur type aux variables, ou plutôt les variables n'ont pas de type, seules les données en ont. Concrètement, vous pouvez attribuer à une même variable des données de types différents...
Observez ceci :
Output:
Avantage : vous pouvez manipulez facilement des données de différents types avec une seule variable ; inconvénient : les données aux formats inattendus peuvent provoquer des erreurs.

### Types de données

Heureusement, la liste des types de données basiques disponibles est courte:
* boolean: Soit true soit false
* number: Un nombre réel (précision virgule flottante)
* string: Une chaîne de caractères "Opa pessoal, sou Carioca!".
* function: Les fonctions sont des valeurs de première-classe pour Lua (nous en reparlerons).
* userdata: Un objet C que vous passez à Lua (nous en reparlerons).
* thread: Co-routine Lua (nous en reparlerons).
* table: Les tables qui sont la clé du langage car elles constituent une structure de données flexible (nous en reparlerons souvent).
* nil: Nul est un type de donnée nil, qui représente l’absence de valeur nil Constitue avec les tables l'autre clé du langage, une variable doit avoir une valeur sinon elle devient nil...