Lua en ligne - IDE, éditeur, compilateur, interpréteur

RSS

Exécutez des scripts Lua 5.4 instantanément avec une version WebAssembly de l'interpréteur de référence. Idéal pour apprendre le Lua ou tester des scripts de jeu et de configuration.

Lua 5.4 (wasmoon) · S'exécute dans votre navigateur : votre code n'atteint jamais nos serveurs.
main.luaLua
Sortie

            
        
Ctrl/⌘ + Enter pour exécuter

Fonctionnalités du compilateur Lua en ligne (IDE, éditeur & interpréteur)

Écrivez, exécutez et testez du code Lua en ligne gratuitement. Cette page réunit un IDE Lua en ligne, un éditeur de code, un compilateur et un interpréteur : saisissez votre code, cliquez sur Exécuter et voyez le résultat immédiatement. Tout s'exécute dans votre navigateur, sans rien à installer ni compte à créer.

  • Exécution instantanée : Lua 5.4 (wasmoon), avec un résultat en moins d'une seconde après le premier chargement.
  • Éditeur de code : coloration syntaxique, numéros de ligne, correspondance et fermeture automatique des parenthèses.
  • Erreurs claires : les messages d'erreur et avertissements s'affichent dans le panneau de sortie, comme sur votre propre ordinateur.
  • Plein écran : Ctrl/⌘ + Shift + F, taille de police réglable, disposition côte à côte ou empilée et panneaux redimensionnables.
  • Enregistrement automatique : votre code est conservé dans votre navigateur ; téléchargez-le sous main.lua ou copiez-le en un clic.
  • Expérimentez sans risque : une limite de temps et un bouton Arrêter interrompent les boucles infinies.
  • Confidentiel : l'environnement d'exécution Lua tourne sur votre appareil : votre code n'est jamais envoyé.
  • Mode sombre et raccourcis clavier : Ctrl/⌘ + Enter exécute le code.
  • Gratuit : sans inscription, sans limite d'utilisation.

Découvrez d'autres langages de programmation

Comment utiliser le compilateur Lua en ligne

  1. Écrivez ou collez un script Lua dans l'éditeur. Réinitialiser l'exemple restaure le code de départ.
  2. Appuyez sur Exécuter ou utilisez Ctrl + Entrée (⌘ + Entrée sur un Mac).
  3. Tout ce que vous passez à print() apparaît dans le panneau Sortie. Comme dans l'interpréteur standard, plusieurs arguments sont séparés par des tabulations, et nil est affiché nil. Les erreurs d'exécution et de syntaxe sont surlignées avec le numéro de ligne.
  4. Choisissez une limite de temps de 5, 15 ou 60 secondes. Un script qui tourne trop longtemps est arrêté automatiquement, et Arrêter l'interrompt immédiatement.

L'environnement d'exécution Lua est petit, bien en dessous de 1 Mo, si bien que la page est prête à exécuter presque instantanément. Utilisez Copier ou main.lua pour enregistrer votre script.

Votre script s'exécute dans un Web Worker à l'intérieur de votre navigateur. Il n'est jamais envoyé et n'est pas stocké sur nos serveurs. L'éditeur mémorise votre dernier code dans le stockage local de votre navigateur, et nulle part ailleurs.

Ce qui est pris en charge

Le compilateur exécute Lua 5.4 via wasmoon, une version WebAssembly de l'interpréteur Lua de référence écrit en C. Votre code est exécuté par le vrai Lua, et non par une traduction en JavaScript.

  • Le langage Lua 5.4 : sous-types entier et flottant, division entière (//), opérateurs bit à bit, goto, et les attributs locaux <const> et <close>.
  • Bibliothèques standard : string (y compris les motifs Lua et string.format), table, math, utf8 et coroutine.
  • Fermetures, métatables et coroutines, pour vous exercer à la programmation orientée objet et au style générateur en Lua.

Limitations :

  • Utilisez print() pour la sortie. La sortie est capturée depuis print : utilisez-le plutôt que io.write.
  • Pas d'entrée standard, d'accès réseau ni de vrais fichiers. Placez vos données de test directement dans le script.
  • Pas de modules C ni de LuaRocks. Seul le code Lua pur de l'éditeur peut s'exécuter.
  • Chaque exécution reçoit un état Lua neuf : les variables globales de l'exécution précédente sont donc effacées.

Aide-mémoire Lua

local Account = {}
Account.__index = Account

function Account.new(owner, balance)
  return setmetatable({ owner = owner, balance = balance or 0 }, Account)
end

function Account:deposit(v)
  self.balance = self.balance + v
end

local acc = Account.new("Ada")
acc:deposit(50)
print(acc.owner, acc.balance)          --> Ada  50

for word in ("one two three"):gmatch("%a+") do
  print(#word, word:upper())
end
print(7 // 2, 7 / 2)                   --> 3  3.5
TâcheSyntaxe
Variable localelocal x = 10
Concaténer des chaînes"a" .. "b"
Longueur d'une chaîne ou d'une liste#t
Différent dea ~= b
Boucle numériquefor i = 1, 10, 2 do ... end
Parcourir une liste / une tablefor i, v in ipairs(t) / for k, v in pairs(t)
Formater un nombrestring.format("%.2f", n)

Conseils

  • Les tableaux Lua commencent à l'indice 1, pas 0, et # n'est fiable que pour les séquences sans « trous » nil.
  • Déclarez vos variables avec local. Sans cela, une variable est globale, ce qui est plus lent et une source fréquente de bogues.
  • Seuls nil et false sont faux. 0 et la chaîne vide sont vrais en Lua.
  • Les motifs Lua ressemblent à des expressions régulières mais sont plus simples, et utilisent % au lieu d'une barre oblique inverse, comme dans %d+. Pour de vraies expressions régulières dans d'autres langages, essayez le Testeur de regex.
Astuce : Pour afficher le contenu d'une table, parcourez-la avec pairs, ou utilisez table.concat(list, ", ") pour une liste de chaînes et de nombres. Passer la table elle-même à print(t) n'en affiche pas le contenu.

Questions fréquentes

Quelle version de Lua est utilisée ?

Lua 5.4. Exécutez print(_VERSION) pour le confirmer. Le code écrit pour Lua 5.3 fonctionne presque toujours sans modification, tandis que le code Lua 5.1 ou LuaJIT peut nécessiter de petits changements, par exemple remplacer unpack par table.unpack.

Puis-je tester des scripts Roblox ou LÖVE ici ?

Vous pouvez tester de la logique Lua pure, comme les fonctions, les tables, la manipulation de chaînes et les calculs. Les API de moteurs comme les services Roblox (Roblox utilise son propre dialecte, Luau) ou les fonctions love.* de LÖVE n'existent pas ici.

Pourquoi io.read ne fonctionne-t-il pas ?

Le compilateur n'a pas d'entrée standard interactive. Définissez vos valeurs de test sous forme de variables en haut du script.

Quels autres langages puis-je exécuter en ligne ?

Le Compilateur Python en ligne et le Compilateur Ruby en ligne s'exécutent eux aussi entièrement dans votre navigateur.

Mis à jour

Copié dans le presse-papiers