Lua online - IDE, editor, compilador, interpretador

RSS

Execute scripts Lua 5.4 na hora com um build em WebAssembly do interpretador de referência. Ideal para aprender Lua ou testar scripts de jogos e de configuração.

Lua 5.4 (wasmoon) · Roda no seu navegador, então seu código nunca chega aos nossos servidores.
main.luaLua
Saída

            
        
Ctrl/⌘ + Enter para executar

Recursos do compilador Lua online (IDE, editor & interpretador)

Escreva, execute e teste código Lua online de graça. Esta página funciona como IDE, editor de código, compilador e interpretador Lua online, tudo em um: digite seu código, clique em Executar e veja a saída na hora. Tudo roda no seu navegador, sem nada para instalar e sem conta para criar.

  • Execute código na hora: Lua 5.4 (wasmoon), com saída em menos de um segundo após o primeiro carregamento.
  • Editor de código: realce de sintaxe, números de linha, correspondência de colchetes e fechamento automático de colchetes.
  • Erros claros: mensagens de erro e avisos aparecem no painel de saída, como apareceriam no seu próprio computador.
  • Tela cheia: Ctrl/⌘ + Shift + F, tamanho de fonte ajustável, layout lado a lado ou empilhado e painéis redimensionáveis.
  • Salvamento automático: seu código fica guardado no seu navegador; baixe-o como main.lua ou copie-o com um clique.
  • Seguro para experimentar: um limite de tempo e um botão Parar encerram loops infinitos.
  • Privado: o runtime Lua roda no seu dispositivo, então seu código nunca é enviado.
  • Modo escuro e atalhos de teclado: Ctrl/⌘ + Enter executa o código.
  • Grátis: sem cadastro, sem limites de uso.

Aprenda outras linguagens de programação

Como usar o compilador Lua online

  1. Escreva ou cole um script Lua no editor. Restaurar exemplo traz de volta o código inicial.
  2. Pressione Executar ou use Ctrl + Enter (⌘ + Enter no Mac).
  3. Tudo o que você passa para print() aparece no painel Saída. Como no interpretador padrão, vários argumentos são separados por tabulações, e nil é impresso como nil. Erros de execução e de sintaxe são destacados junto com o número da linha.
  4. Escolha um limite de tempo de 5, 15 ou 60 segundos. Um script que demora demais é interrompido automaticamente, e Parar o encerra na hora.

O runtime do Lua é pequeno, bem abaixo de 1 MB, então a página fica pronta para executar quase instantaneamente. Use Copiar ou main.lua para salvar seu script.

Seu script roda em um Web Worker dentro do seu navegador. Ele nunca é enviado e não é armazenado em nossos servidores. O editor lembra seu último código no armazenamento local do navegador, e em nenhum outro lugar.

O que é compatível

O compilador executa o Lua 5.4 por meio do wasmoon, uma versão em WebAssembly do interpretador Lua de referência escrito em C. Seu código é executado pelo Lua de verdade, não por uma tradução para JavaScript.

  • A linguagem Lua 5.4: subtipos inteiro e ponto flutuante, divisão inteira (//), operadores bit a bit, goto e os atributos locais <const> e <close>.
  • Bibliotecas padrão: string (incluindo padrões Lua e string.format), table, math, utf8 e coroutine.
  • Closures, metatables e corrotinas, para você praticar Lua orientado a objetos e no estilo de geradores.

Limitações:

  • Use print() para a saída. A saída é capturada de print, então use-o em vez de io.write.
  • Sem entrada padrão, acesso à rede nem arquivos reais. Coloque seus dados de teste diretamente no script.
  • Sem módulos em C nem LuaRocks. Só roda código Lua puro escrito no editor.
  • Cada execução recebe um estado Lua novo, então as variáveis globais da execução anterior são apagadas.

Referência rápida de 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
TarefaSintaxe
Variável locallocal x = 10
Concatenar strings"a" .. "b"
Tamanho de uma string ou lista#t
Diferentea ~= b
Laço numéricofor i = 1, 10, 2 do ... end
Percorrer uma lista / uma tabelafor i, v in ipairs(t) / for k, v in pairs(t)
Formatar um númerostring.format("%.2f", n)

Dicas

  • Os arrays do Lua começam no índice 1, não no 0, e # só é confiável para sequências sem buracos de nil.
  • Declare as variáveis com local. Sem isso, a variável é global, o que é mais lento e uma fonte comum de bugs.
  • Só nil e false são falsos. 0 e a string vazia são verdadeiros no Lua.
  • Os padrões do Lua parecem expressões regulares, mas são mais simples e usam % em vez de barra invertida, como em %d+. Para expressões regulares completas em outras linguagens, experimente o Testador de regex.
Dica: Para imprimir o conteúdo de uma tabela, percorra-a com pairs ou use table.concat(list, ", ") para uma lista de strings e números. Passar a própria tabela para print(t) não lista o conteúdo dela.

Perguntas frequentes

Qual versão do Lua é usada aqui?

Lua 5.4. Execute print(_VERSION) para confirmar. O código escrito para o Lua 5.3 quase sempre funciona sem alterações, enquanto o código para Lua 5.1 ou LuaJIT pode precisar de pequenos ajustes, por exemplo trocar unpack por table.unpack.

Posso testar scripts do Roblox ou do LÖVE aqui?

Você pode testar a lógica do Lua puro, como funções, tabelas, manipulação de strings e matemática. APIs de engines, como os serviços do Roblox (que usa seu próprio dialeto, o Luau) ou as funções love.* do LÖVE, não existem aqui.

Por que o io.read não funciona?

O compilador não tem entrada padrão interativa. Defina seus valores de teste como variáveis no início do script.

Que outras linguagens posso executar online?

O Compilador Python online e o Compilador Ruby online também rodam inteiramente no seu navegador.

Atualizado

Comentários

Ainda não há avaliações

Entre para avaliar esta ferramenta.

Compartilhe uma dica, faça uma pergunta ou conte como a ferramenta funcionou para você.

Ainda não há comentários. Seja o primeiro a contar como foi.

Copiado para a área de transferência