Objetivos
Sintaxe básica
Diferente da linguagem C, Lua não possui um função main presente também em linguagens
da família C. Por seu uma linguagem de script, cada declaração de código escrita pode ser
executada imediatamente.
Para demonstrar o que foi dito acima, vamos utilizar o famoso exemplo Olá Mundo usado
no aprendizado de várias linguagens:
Exemplo 1
print("Olá Mundo!")
Saída
Olá Mundo!
Declaração
Como visto no primeiro exemplo acima, as declarações de linha de código como expressões,
chamada de funções e outras não precisam ser terminadas com (;), assim como Python e
Go por exemplo.
Exemplo 3
print("Hello World!")
A função print é utilizada par saída de dados. Mais sobre o assunto pode ser
visto em Entrada e Saída.
Comentários
O uso de comentários na linguagem Lua é feita usando os caracteres "--" , "[[" e "]]" que definem
comentários de linha ou bloco de linhas respectivamente.
Exemplo 4
-- comentário de uma linha
--[[
cometário em bloco
]]--
print("Hello World!")
Bloco de declaração/código
Os comandos de decisão utilizando then e end e alguns os comandos de repetição
utilizam do e end para definir seus blocos de código.
Os caracteres { e } são utilizandos em tipos de dados derivados
matrizes/vetores e estrutura de dado
tables para delimitar os blocos de declarações.
Exemplo 5
vetor = {1,2,3}
if ([[condicao]]) then
--omitido
end
O comando if e outros comandos serão vistos com mais detalhes em
Lua: Comandos.
Lua é bem flexível em relação à identação de declarações de código. Abaixo alguns exemplos de posssíveis
identações de código para chamada de função e comando if.
Exemplo 6
--padrão
print ("Hello, World!")
--quebra de linha
print
("Hello, World!")
--quebra de linha + tabulação
print
("Hello, World!")
-- if padrão
if(true) then
print ("Hello, World!")
end
--quebra de linha, print c/ quebra de linha + tabulação
if(true)
then
print
("Hello, World!")
end
-- mesma linha
if(true) then print ("Hello, World!") end
Diferente de outras linguagens com C# e java, Lua não possui suporte a namespace que é uma forma
de agrupar variáveis e funções em um escopo. Em Lua um namespace pode ser simulado usando
módulo ou
table.
Sintaxe
nome_objeto.nome_identificador
nome_modulo.nome_identificador
Exemplo 7
meuTipo = {} --namespace
function meuTipo.funcao(parametro)
print(parametro)
end
//namespace
meuTipo.funcao("uma string");
Sintaxe
uma string
Por padrão, scripts escritos em linguagem Lua utilizam seus arquivos terminados com
extensão ".lua". Outras extensões utilizadas por frameworks ou outros não serão abordados.
Exemplo 8
main.lua
Histórico de atualizações
- 11/12/2025 - revisão 4 - Adição: "namespace"
- 15/09/2025 - revisão 3 - Ajustes: pontuais, target de links internos e objetivos; Adição: identação
- 12/09/2024 - revisão 2 - pequenos ajustes em introdução, tipos de arquivos e comentários
- 03/10/2023 - revisão 1 - Correção em referências e erros gramaticais
- 26/05/2023 - versão inicial
Os cursos oferecidos nesta página são cursos fornecidos por parceiros. Ao comprar um curso clicando
em seu banner, você está ajudando a manter o projeto TutorialDev vivo. Os sites dos cursos parceiros utilizam cookies.