Operadores

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

Um operador é um símbolo para realizar uma operação ou avaliação condicional.

Lógicos

Operadores lógicos retornam valores dependendo dos valores booleanos dos argumentos dados. Se um argumento não for false ou nil, então o operador o avalia como true. Ao contrário de muitas outras linguagens, Luau considera tanto zero quanto a string vazia como true. A tabela a seguir resume como os operadores lógicos se comportam em condicionais.

OperadorDescrições
andAvalia como true apenas se ambas as condições forem verdadeiras
orAvalia como true se pelo menos uma condição for verdadeira
notAvalia como o oposto da condição

and

O operador binário and retorna um dos dois argumentos. Se o primeiro argumento avaliar para true, então retorna o segundo argumento. Caso contrário, retorna o primeiro argumento.


print(4 and 5) -- 5
print(nil and 12) -- nil
print(false and 12) -- false
print(false and true) -- false
print(false and false) -- false
print(true and false) -- false
print(true and true) -- true

Você pode usar and para testar várias condições em estruturas de controle, como if statements e while loops. Por exemplo, a seguinte declaração ifthen testa se duas condições são ambas verdadeiras:


local pasta = true
local tomatoSauce = true
if pasta == true and tomatoSauce == true then
print("Nós temos jantar de espaguete")
else
print("Algo está faltando...")
end
-- Output: Nós temos jantar de espaguete

or

O operador binário or retorna um dos dois argumentos. Se o primeiro argumento avaliar para true, então retorna o primeiro argumento. Caso contrário, retorna o segundo argumento.


local y = x or 1
print(y) -- 1 porque x não existe e, portanto, é nil
local d = false
local e = d or 1
print(e) -- 1 porque d é false
print(4 or 5) -- 4
print(nil or 12) -- 12
print(false or 12) -- 12
print(false or true) -- true
print(false or false) -- false
print(true or false) -- true
print(true or true) -- true

Você pode usar or para realizar testes lógicos complexos em estruturas de controle. Por exemplo, a seguinte declaração ifthen testa se duas condições são verdadeiras ou se uma terceira condição é verdadeira:


local pasta = false
local tomatoSauce = true
local garlicBread = true
if (pasta == true and tomatoSauce == true) or garlicBread == true then
print("Nós temos ou jantar de espaguete OU pão de alho")
else
print("Algo está faltando...")
end
-- Output: Nós temos ou jantar de espaguete OU pão de alho

not

O operador unário not retorna o valor booleano oposto do argumento. Se o argumento for false ou nil, então retorna true. Caso contrário, retorna false.


print(not true) -- false
print(not false) -- true
print(not nil) -- true
print(not "text") -- false
print(not 0) -- false

Você pode usar o operador not para acionar uma condição ou loop se uma variável for false ou nil.


local nilVariable -- Variável é declarada, mas não possui valor, então é nil
local falseVariable = false -- Variável é declarada com valor falso
if not nilVariable then
print(nilVariable) -- Produz "nil" porque nil não é true
end
if not falseVariable then
print(falseVariable) -- Produz "false" porque false não é true
end

Você também pode usar o operador not para testar o oposto de uma declaração de múltiplas condições. No seguinte exemplo de código, a condição ifthen testa que não é verdadeiro que três é maior que quatro nem que cinco é maior que quatro.


local three = 3
local four = 4
local five = 5
if not (three > four or five < four) then
print("Três é menor que 4 e cinco é maior que 4.")
end
-- Output: Três é menor que 4 e cinco é maior que 4.

Relacionais

Operadores relacionais comparam dois parâmetros e retornam um boolean: true ou false.

OperadorDescriçãoExemploMétodo metafísico associado
==Igual a3 == 5false__eq
~=Diferente de3 ~= 5true
>Maior que3 > 5false
<Menor que3 < 5true__lt
>=Maior ou igual a3 >= 5false
<=Menor ou igual a3 <= 5true__le

Aritméticos

Luau suporta os habituais operadores binários juntamente com exponenciação, módulo e negação unária.

OperadorDescriçãoExemploMétodo metafísico associado
+Adição1 + 1 = 2__add
-Subtração1 - 1 = 0__sub
*Multiplicação5 * 5 = 25__mul
/Divisão10 / 5 = 2__div
//Divisão por inteiro

10 // 4 = 2
-10 // 4 = -3

__idiv
^Exponenciação2 ^ 4 = 16__pow
%Módulo13 % 7 = 6__mod
-Negação unária-2 = 0 - 2__unm

Atribuição composta

Você pode usar operadores de atribuição composta para definir uma variável igual ao resultado de uma operação onde o primeiro parâmetro é o valor atual da variável.

A operação em uma atribuição composta ocorre uma vez. Por exemplo, se uma expressão gera um índice aleatório em uma tabela, Luau usa o mesmo índice tanto para a operação quanto para a atribuição.

Nos seguintes exemplos, suponha que local x = 3.

OperadorOperaçãoExemploNovo Valor de x
+=Adiçãox += 25
-=Subtraçãox -= 21
*=Multiplicaçãox *= 26
/=Divisãox /= 21.5
//=Divisão por inteirox //= 21
%=Módulox %= 21
^=Exponenciaçãox ^= 29
..=Concatenaçãox ..= " Mundo!" "3 Mundo!"

Diversos

Operadores diversos incluem concatenação e comprimento.

OperadorDescriçãoExemploMétodo metafísico associado
..Concatena duas stringsprint("Olá " .. "Mundo!")__concat
#Comprimento da tabelaSe tableVar = {1, 2, 3}, então #tableVar == 3.__len
©2026 Roblox Corporation, Roblox, o logotipo Roblox e Powering Imagination estão entre nossas marcas registradas e não registradas nos EUA e em outros países.