Lua online - IDE, Editor, Compiler, Interpreter

RSS

Lua-5.4-Skripte sofort mit einem WebAssembly-Build des Referenzinterpreters ausführen. Ideal zum Lernen von Lua oder zum Testen von Spiel- und Konfigurationsskripten.

Lua 5.4 (wasmoon) · Läuft in Ihrem Browser – Ihr Code erreicht nie unsere Server.
main.luaLua
Ausgabe

            
        
Ctrl/⌘ + Enter zum Ausführen

Funktionen des Online-Lua-Compilers (IDE, Editor & Interpreter)

Schreiben, ausführen und testen Sie Lua-Code kostenlos online. Diese Seite ist Online-Lua-IDE, Code-Editor, Compiler und Interpreter in einem: Code eingeben, auf „Ausführen“ klicken und sofort die Ausgabe sehen. Alles läuft in Ihrem Browser – nichts zu installieren, kein Konto nötig.

  • Code sofort ausführen: Lua 5.4 (wasmoon), Ausgabe nach dem ersten Laden in weniger als einer Sekunde.
  • Code-Editor: Syntaxhervorhebung, Zeilennummern, Klammerzuordnung und automatisches Schließen von Klammern.
  • Klare Fehlermeldungen: Fehlermeldungen und Warnungen erscheinen im Ausgabebereich – genau wie auf Ihrem eigenen Computer.
  • Vollbild: Ctrl/⌘ + Shift + F, anpassbare Schriftgröße, Layout nebeneinander oder untereinander und skalierbare Bereiche.
  • Automatisches Speichern: Ihr Code bleibt in Ihrem Browser gespeichert; laden Sie ihn als main.lua herunter oder kopieren Sie ihn mit einem Klick.
  • Gefahrlos experimentieren: Ein Zeitlimit und eine Stopp-Schaltfläche beenden Endlosschleifen.
  • Privat: Die Lua-Laufzeitumgebung läuft auf Ihrem Gerät, Ihr Code wird also nie hochgeladen.
  • Dunkelmodus und Tastenkürzel: Ctrl/⌘ + Enter führt den Code aus.
  • Kostenlos: keine Anmeldung, keine Nutzungslimits.

Weitere Programmiersprachen lernen

So nutzen Sie den Online-Lua-Compiler

  1. Schreiben Sie ein Lua-Skript im Editor oder fügen Sie es dort ein. Beispiel zurücksetzen stellt den Startcode wieder her.
  2. Drücken Sie Ausführen oder nutzen Sie Strg + Enter (⌘ + Enter auf dem Mac).
  3. Alles, was Sie an print() übergeben, erscheint im Bereich Ausgabe. Wie beim Standard-Interpreter werden mehrere Argumente durch Tabulatoren getrennt, und nil wird als nil ausgegeben. Laufzeit- und Syntaxfehler werden samt Zeilennummer hervorgehoben.
  4. Wählen Sie ein Zeitlimit von 5, 15 oder 60 Sekunden. Ein Skript, das zu lange läuft, wird automatisch gestoppt, und Stopp beendet es sofort.

Die Lua-Laufzeitumgebung ist klein, deutlich unter 1 MB, sodass die Seite fast sofort startklar ist. Mit Kopieren oder main.lua speichern Sie Ihr Skript.

Ihr Skript läuft in einem Web Worker in Ihrem Browser. Es wird nie hochgeladen und nicht auf unseren Servern gespeichert. Der Editor merkt sich Ihren letzten Code im lokalen Speicher Ihres Browsers und an keiner anderen Stelle.

Was unterstützt wird

Der Compiler führt Lua 5.4 über wasmoon aus, einen WebAssembly-Build des in C geschriebenen Lua-Referenz-Interpreters. Ihr Code wird von echtem Lua ausgeführt, nicht von einer Übersetzung in JavaScript.

  • Die Sprache Lua 5.4: Ganzzahl- und Gleitkomma-Untertypen, ganzzahlige Division (//), bitweise Operatoren, goto sowie die lokalen Attribute <const> und <close>.
  • Standardbibliotheken: string (einschließlich Lua-Mustern und string.format), table, math, utf8 und coroutine.
  • Closures, Metatables und Coroutinen, sodass Sie objektorientiertes und generatorartiges Lua üben können.

Einschränkungen:

  • Nutzen Sie print() für die Ausgabe. Die Ausgabe wird von print aufgefangen; verwenden Sie es also statt io.write.
  • Keine Standardeingabe, kein Netzwerkzugriff und keine echten Dateien. Legen Sie Ihre Testdaten direkt im Skript ab.
  • Keine C-Module oder LuaRocks. Es läuft nur reiner Lua-Code aus dem Editor.
  • Jeder Lauf erhält einen frischen Lua-Zustand; globale Variablen des vorigen Laufs werden also gelöscht.

Lua-Kurzreferenz

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
AufgabeSyntax
Lokale Variablelocal x = 10
Zeichenketten verketten"a" .. "b"
Länge einer Zeichenkette oder Liste#t
Ungleicha ~= b
Numerische Schleifefor i = 1, 10, 2 do ... end
Eine Liste / eine Tabelle durchlaufenfor i, v in ipairs(t) / for k, v in pairs(t)
Eine Zahl formatierenstring.format("%.2f", n)

Tipps

  • Lua-Arrays beginnen bei Index 1, nicht bei 0, und # ist nur für Sequenzen ohne nil-Lücken zuverlässig.
  • Deklarieren Sie Variablen mit local. Ohne das Schlüsselwort ist eine Variable global, was langsamer ist und eine häufige Fehlerquelle darstellt.
  • Nur nil und false gelten als falsch. 0 und die leere Zeichenkette sind in Lua wahr.
  • Lua-Muster sehen aus wie reguläre Ausdrücke, sind aber einfacher und nutzen % statt eines Backslashs, wie in %d+. Für vollständige reguläre Ausdrücke in anderen Sprachen probieren Sie den Regex-Tester.
Tipp: Um den Inhalt einer Tabelle auszugeben, durchlaufen Sie sie mit pairs oder nutzen Sie table.concat(list, ", ") für eine Liste aus Zeichenketten und Zahlen. Wenn Sie die Tabelle selbst an print(t) übergeben, wird ihr Inhalt nicht aufgelistet.

Häufig gestellte Fragen

Welche Lua-Version wird hier verwendet?

Lua 5.4. Führen Sie print(_VERSION) aus, um das zu bestätigen. Für Lua 5.3 geschriebener Code läuft fast immer unverändert, während Code für Lua 5.1 oder LuaJIT kleine Anpassungen brauchen kann, zum Beispiel unpack durch table.unpack zu ersetzen.

Kann ich hier Roblox- oder LÖVE-Skripte testen?

Sie können reine Lua-Logik testen, etwa Funktionen, Tabellen, Zeichenkettenverarbeitung und Mathematik. Engine-APIs wie die Roblox-Dienste (Roblox nutzt seinen eigenen Dialekt Luau) oder die love.*-Funktionen von LÖVE gibt es hier nicht.

Warum funktioniert io.read nicht?

Der Compiler hat keine interaktive Standardeingabe. Definieren Sie Ihre Testwerte als Variablen am Anfang des Skripts.

Welche anderen Sprachen kann ich online ausführen?

Der Online-Python-Compiler und der Online-Ruby-Compiler laufen ebenfalls vollständig in Ihrem Browser.

Aktualisiert

In die Zwischenablage kopiert