Objetivos
Variáveis
A declaração de variáveis em Lua é feita informando o tipo de dados antes do nome da variável
como exemplificado abaixo:
Sintaxe
local nome_variavel
As variáveis não declaradas utilizando local são consideradas variáveis globais. O escopo
de variáveis será visto mais adiante.
Exemplo 1
local nome_variavel
nome_variavel --variável global
A linguagem Lua permite que essa declaração seja feita em apenas uma linha. A sintaxe é semelhante ao que foi
visto no exemplo acima. Nesse tipo de declaração os nomes das variáveis são separados por (,). A
atribuição não é permitida em linha.
Sintaxe
local nome_variavel1, nome_variavel2, nome_variavelN
Exemplo 2
local var1, var2, var3
A atribuição de valor a uma variável é feita utilizando o operador (=):
Sintaxe
local nome_variavel1 = valor
Exemplo 3
local valor = 1
A linguagem Lua é case-sensitive. Quando declaramos identificadores homônimos em caixa alta e caixa baixa, esses são vistos como identificadores distintos.
Sintaxe
nome_variavel
NOME_VARIAVEL
Exemplo 4
local var = "[uma string]"
local VAR = true;
print(var)
print(VAR)
function funcao(param)
print(param)
end
funcao(var)
function FUNCAO(param)
print(param)
end
FUNCAO(VAR)
Saída
[uma string]
true
[uma string]
true
Assunto função pode ser visto com mais detalhes em
Lua: Básico > Funções.
Lua suporta a atribuição de múltiplas variáveis em apenas uma linha de código. Isso é feito
usando o operador (=) de acordo com a sintaxe mostrada abaixo:
Sintaxe
var1,var2,...,varN = valor1, valor2,...,valorN
Exemplo 5
local x = 1
local y = "string"
local z = true
a,b,c = x,y,z
print(a,b,c)
Saída
1 string true
Assunto função pode ser visto com mais detalhes em
Lua: Básico > Funções.
A palavra reservada local é opcional na declaração de variáveis. Toda variável
criada sem a utilização dessa palavra reservada é internamente declarada
como global. Para variáveis locais é necessário utilizar local.
Sintaxe
local nome_variavel = valor
nome_variavel = valor -- global
Exemplo 6
local tipo_dado nome_variavel
--
nome_variavel = 10 --global
As variáveis e constantes podem ser declaradas dentro ou fora de funções. Quando declaradas
fora de funções tem escopo global e dentro de funções o escopo é local.
Inferência de dados
A linguagem Lua possui a característica de inferência de dados. Isso significa que quanto
criamos uma variável não precisamos declarar seu tipo. A inferência do tipo de dado está
associada ao valor atribuído à variável.
Sintaxe
local nome_variavel = valor
nome_variavel = valor
Exemplo 7
local numero = 10
texto = "string"
Nomeando variáveis
Identificadores são nomes que utilizamos para identificar variáveis , funções e outros.
Na linguagem Lua, assim como em várias outras, precisamos seguir alguma regras:
Regras
- Iniciar com letras A-Z, a-z ou underscore
- Palavras reservadas não podem ser utilizadas
- Não podem iniciar com dígitos 0-9 ou caracteres especiais como $ , %, , # e outros
Exemplos
--válidos
nome
NOME
_nome
--inválidos
1nome
$nome
123
Agora que já temos conhecimento sobre os tipos básicos de dados presentes na linguagem Lua,
vamos ver alguns exemplos de declaração de variáveis nessa linguagem.
Exemplo 8
--number
local number var1 = 10
local var1 = 10 --inferência
local number var2 = 7.77
local number var3 = -1
--strings
local var4 = [[terceira forma de declarar string]] --inferência
local string var5 = "uma string em Lua"
local string var6 = 'Outra String Em Lua'
--Vetores e matrizes
local string vetor= {"Lua", "Tutorial"}
local matriz = {{1,2},{3,4}} //inferência
--boolean
local bool var7 = true
--hexadecimal
local number var8 = 0x10 --hexa
--octal
local number var9 = 0o20 --octal
Os tipos de dados function,
table e
outros, podem ser vistos em suas respectivas seções.
Abaixo é apresentada a tabela contendo a lista de palavras reservadas mencionadas nas
regras acima que não podem ser utilizadas como identificadores(Variáveis, funções e outros):
Tab. 1: Palavras reservadas
|
|
|
|
| and |
elseif |
function |
nil |
| return |
while |
break |
end |
| if |
not |
then |
do |
| false |
in |
or |
true |
| else |
for |
global |
local |
| repeat |
until |
- |
- |
Verificando tipos
Com o uso de inferência da linguagem, em alguns momentos precisamos verificar o tipo de
dado uma que variável possui. Nessa situação, utilizamos a função type:
Sintaxe
type(v)
Onde
v: variável que desejamos descobrir o tipo
Retorno
string contendo nome do tipo de dado de v
Exemplo 9
var1 = 1.99
print(type(var1))
Saída
number
Histórico de atualizações
- 11/12/2025 - revisão 4 - Adição: case-sensitive, Múltipla atribuição. Ajuste: Ex. 8
- 15/09/2025 - revisão 3 - Ajustes: pontuais, sintaxes, objetivos e target de links internos
- 12/09/2024 - revisão 2 - Correção em link Portugol e outros pequenos ajustes gramaticais
- 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.