Lua online - IDE, editor, compilatore, interprete

RSS

Esegui subito script Lua 5.4 con una build WebAssembly dell'interprete di riferimento. Ideale per imparare Lua o testare script di giochi e di configurazione.

Lua 5.4 (wasmoon) · Funziona nel tuo browser, quindi il tuo codice non raggiunge mai i nostri server.
main.luaLua
Output

            
        
Ctrl/⌘ + Enter per eseguire

Funzionalità del compilatore Lua online (IDE, editor e interprete)

Scrivi, esegui e testa codice Lua online gratis. Questa pagina è al tempo stesso IDE Lua online, editor di codice, compilatore e interprete: scrivi il codice, premi Esegui e vedi subito l'output. Tutto funziona nel tuo browser, senza nulla da installare e senza creare un account.

  • Esecuzione immediata: Lua 5.4 (wasmoon), con output in meno di un secondo dopo il primo caricamento.
  • Editor di codice: evidenziazione della sintassi, numeri di riga, corrispondenza e chiusura automatica delle parentesi.
  • Errori chiari: messaggi di errore e avvisi compaiono nel pannello di output, come sul tuo computer.
  • Schermo intero: Ctrl/⌘ + Shift + F, dimensione del carattere regolabile, layout affiancato o impilato e pannelli ridimensionabili.
  • Salvataggio automatico: il tuo codice resta nel browser; scaricalo come main.lua o copialo con un clic.
  • Sperimenta in sicurezza: un limite di tempo e un pulsante Interrompi fermano i cicli infiniti.
  • Privato: il runtime Lua funziona sul tuo dispositivo, quindi il codice non viene mai caricato.
  • Modalità scura e scorciatoie da tastiera: Ctrl/⌘ + Enter esegue il codice.
  • Gratis: nessuna registrazione, nessun limite di utilizzo.

Impara altri linguaggi di programmazione

Come usare il compilatore Lua online

  1. Scrivi o incolla uno script Lua nell'editor. Ripristina esempio ripristina il codice iniziale.
  2. Premi Esegui oppure usa Ctrl + Invio (⌘ + Invio su Mac).
  3. Tutto ciò che passi a print() compare nel pannello Output. Come nell'interprete standard, più argomenti sono separati da tabulazioni e nil viene stampato come nil. Gli errori di runtime e di sintassi vengono evidenziati insieme al numero di riga.
  4. Scegli un limite di tempo di 5, 15 o 60 secondi. Uno script che gira troppo a lungo viene fermato automaticamente, e Interrompi lo termina subito.

Il runtime Lua è piccolo, ben sotto 1 MB, quindi la pagina è pronta a eseguire quasi all'istante. Usa Copia o main.lua per salvare il tuo script.

Il tuo script gira in un Web Worker dentro il tuo browser. Non viene mai caricato e non è salvato sui nostri server. L'editor ricorda il tuo ultimo codice nel local storage del tuo browser, e in nessun altro posto.

Cosa è supportato

Il compilatore esegue Lua 5.4 tramite wasmoon, una build WebAssembly dell'interprete Lua di riferimento scritto in C. Il tuo codice viene eseguito da Lua vero, non da una traduzione in JavaScript.

  • Il linguaggio Lua 5.4: sottotipi intero e float, divisione intera (//), operatori bit a bit, goto e gli attributi locali <const> e <close>.
  • Librerie standard: string (compresi i pattern Lua e string.format), table, math, utf8 e coroutine.
  • Closure, metatable e coroutine, così puoi esercitarti con Lua orientato agli oggetti e in stile generatore.

Limitazioni:

  • Usa print() per l'output. L'output viene catturato da print, quindi usalo al posto di io.write.
  • Nessuno standard input, accesso alla rete o file reali. Metti i tuoi dati di prova direttamente nello script.
  • Nessun modulo C né LuaRocks. Può girare solo codice Lua puro nell'editor.
  • Ogni esecuzione ottiene uno stato Lua nuovo, quindi le variabili globali dell'esecuzione precedente vengono azzerate.

Guida rapida a 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
OperazioneSintassi
Variabile localelocal x = 10
Concatenare stringhe"a" .. "b"
Lunghezza di una stringa o di una lista#t
Diverso daa ~= b
Ciclo numericofor i = 1, 10, 2 do ... end
Iterare una lista / una tabellafor i, v in ipairs(t) / for k, v in pairs(t)
Formattare un numerostring.format("%.2f", n)

Consigli

  • Gli array in Lua partono dall'indice 1, non da 0, e # è affidabile solo per sequenze senza "buchi" nil.
  • Dichiara le variabili con local. Senza, una variabile è globale, il che è più lento e una fonte comune di bug.
  • Solo nil e false sono falsi. 0 e la stringa vuota sono veri in Lua.
  • I pattern Lua somigliano alle espressioni regolari ma sono più semplici e usano % al posto della barra rovesciata, come in %d+. Per le espressioni regolari complete in altri linguaggi, prova il Tester Regex.
Suggerimento: Per stampare il contenuto di una tabella, scorrila con pairs, oppure usa table.concat(list, ", ") per una lista di stringhe e numeri. Passare la tabella stessa a print(t) non ne elenca il contenuto.

Domande frequenti

Quale versione di Lua usa?

Lua 5.4. Esegui print(_VERSION) per confermarlo. Il codice scritto per Lua 5.3 funziona quasi sempre senza modifiche, mentre il codice per Lua 5.1 o LuaJIT può richiedere piccole modifiche, per esempio sostituire unpack con table.unpack.

Posso testare qui script per Roblox o LÖVE?

Puoi testare la logica Lua pura, come funzioni, tabelle, gestione delle stringhe e matematica. Le API dei motori, come i servizi di Roblox (Roblox usa un proprio dialetto, Luau) o le funzioni love.* di LÖVE, qui non esistono.

Perché io.read non funziona?

Il compilatore non ha uno standard input interattivo. Definisci i tuoi valori di prova come variabili all'inizio dello script.

Quali altri linguaggi posso eseguire online?

Anche il Compilatore Python online e il Compilatore Ruby online girano interamente nel tuo browser.

Aggiornato

Copiato negli appunti