Como usar o compilador Lua online
- Escreva ou cole um script Lua no editor. Restaurar exemplo traz de volta o código inicial.
- Pressione Executar ou use Ctrl + Enter (⌘ + Enter no Mac).
- 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, enilé impresso comonil. Erros de execução e de sintaxe são destacados junto com o número da linha. - 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,gotoe os atributos locais<const>e<close>. - Bibliotecas padrão:
string(incluindo padrões Lua estring.format),table,math,utf8ecoroutine. - 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 deprint, então use-o em vez deio.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
| Tarefa | Sintaxe |
|---|---|
| Variável local | local x = 10 |
| Concatenar strings | "a" .. "b" |
| Tamanho de uma string ou lista | #t |
| Diferente | a ~= b |
| Laço numérico | for i = 1, 10, 2 do ... end |
| Percorrer uma lista / uma tabela | for i, v in ipairs(t) / for k, v in pairs(t) |
| Formatar um número | string.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 denil. - Declare as variáveis com
local. Sem isso, a variável é global, o que é mais lento e uma fonte comum de bugs. - Só
nilefalsesão falsos.0e 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.
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
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.