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ógico

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 muitos outros idiomas, Luau considera tanto o 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 uma das condições for verdadeira
notAvalia como o oposto da condição

e

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


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

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


local pasta = true
local tomatoSauce = true
if pasta == true and tomatoSauce == true then
print("We have spaghetti dinner")
else
print("Something is missing...")
end
-- Output: We have spaghetti dinner

or

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


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

Você pode usar or para executar testes lógicos complexos em estruturas de controle.Por exemplo, a seguinte declaração if - then testa se duas condições são verdadeiras ou 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("We have either spaghetti dinner OR garlic bread")
else
print("Something is missing...")
end
-- Output: We have either spaghetti dinner OR garlic bread

não

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


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

Você pode usar o operador not para disparar um condicional ou loop se uma variável for false ou nil.


local nilVariable -- A variável é declarada, mas não tem valor, então é nil
local falseVariable = false -- Variável é declarada com o valor de falso
if not nilVariable then
print(nilVariable) -- Produz "nil" porque nil não é verdadeiro
end
if not falseVariable then
print(falseVariable) -- Produz "false" porque falso não é verdade
end

Você também pode usar o operador not para testar o oposto de uma declaração multi-condicional inteira.No seguinte exemplo de código, os testes condicionais if - then que não é verdade que três seja maior que quatro nem é verdade que cinco seja maior que quatro.


local three = 3
local four = 4
local five = 5
if not (three > four or five < four) then
print("Three is less than 4 and five is greater than 4.")
end
-- Output: Three is less than 4 and five is greater than 4.

Relacionais

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

OperadorDescriçãoExemploMétodo metálico associado
==Equivalente a3 == 5false__eq
~=Não igual a3 ~= 5true
>Maior que3 > 5false
<Menos do que3 < 5true__lt
>=Maior que ou igual a3 >= 5false
<=Menos de ou igual a3 <= 5true__le

Aritmética

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

OperadorDescriçãoExemploMétodo metálico associado
+Adição1 + 1 = 2__add
-Subtração1 - 1 = 0__sub
*Multiplicação5 * 5 = 25__mul
/Divisão10 / 5 = 2__div
//Divisão de Chão

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

Designação composta

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

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

Nos seguintes exemplos, suponha local x = 3.

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

Diversos

Operadores miscelâneos incluem concatenação e comprimento .

OperadorDescriçãoExemploMétodo metálico associado
..Conjunta duas stringsprint("Hello " .. "World!")__concat
#Comprimento da tabelaSe tableVar = {1, 2, 3} , então #tableVar == 3 .__len