Operadores Lua: um guia completo

Neste artigo, vamos nos concentrar nos operadores Lua e em como eles podem ser usados ​​em seus programas Lua.

Em Lua, os operadores são usados ​​para executar diferentes tipos de operações em valores de dados. Os operadores podem ser agrupados em diferentes categorias, incluindo:

  • Operadores aritméticos.
  • Operadores Relacionais.
  • Operadores lógicos.
  • Operadores bit a bit.
  • Operadores de String.


Operadores Aritméticos Lua

Operadores aritméticos são usados ​​para realizar operações matemáticas em valores numéricos.

A tabela a seguir descreve os operadores aritméticos em Lua:

Operadores aritméticos Funções Visão geral Exemplos
+ Adição Efetua a adição dos dois operandos 6+3=9
Subtração O segundo operando é subtraído do primeiro operando 6-3=3
* Multiplicação Multiplicação dos dois operandos 6*3=18
/ Divisão Usado para dividir o numerador pelo denominador 6/3=2,0
% Módulo A operação do módulo é executada 6%3=0
^ Exponenciação Usado para exponenciação de um número 6^3=216
Negação Este operador é usado para negação de um valor a = 6, -a = -6
Observação : esses operadores podem ser usados ​​com valores inteiros e de ponto flutuante.
O exemplo a seguir demonstra operadores aritméticos em Lua:

Example: 

1
2
3
4
5
6
7
8
9
10
11
print("6+7 =",6+7)
print("11-7 =",11-7)
print("2*7 =",2*7)
print("14/7 =",14/7)
print("17%7 =",17%7)
print("2^3 =",2^3)
local a=2;
print("-a =",-a)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Lua Operadores Relacionais

Lua fornece vários operadores relacionais que são usados ​​para comparar dois valores e determinar o relacionamento entre eles.

Esses operadores retornam um valor booleano ( true ou false ) com base no resultado da comparação.

Os operadores Lua relacionais são examinados abaixo:

Operador relacional Funções Visão geral Exemplos
== Igualdade Usado para verificar se dois valores são iguais ou não 5 == 5 retorna verdadeiro
~= Desigualdade Retorna verdadeiro se dois valores forem desiguais, caso contrário, falso 5 ~= 6 retorna verdadeiro
< Menor que Retorna true se o valor do lado esquerdo do operador for menor que o valor do lado direito, caso contrário, false 5 < 10 retorna verdadeiro
> Maior que Este operador retorna verdadeiro se o valor no lado esquerdo da equação for maior que o valor no lado direito, caso contrário, falso 10 > 5 retorna verdadeiro
<= Menos que ou igual a Retorna true se o valor do lado esquerdo do operador for menor ou igual ao valor do lado direito, caso contrário, false 5 <= 10 e 5<=5 ambos retornam verdadeiro
>= Melhor que ou igual a Este operador retorna verdadeiro se o valor do lado esquerdo do operador for maior que igual ao valor do lado direito, caso contrário, falso 10 >= 5 e 5 >= 5 ambos retornam verdadeiro

O exemplo abaixo é usado para ilustrar os operadores Lua relacionais:

Example: 

1
2
3
4
5
6
7
8
9
print("4 == 4 is",4==4)
print("4 ~= 5 is",4~=5)
print("9 < 8 is",9<8)
print("10 > 6 is",10>6)
print("12 <= 11 is",12<=11)
print("15 >= 15 is",15>=15)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Lua Operadores Lógicos

Operadores Lógicos Lua são operadores usados ​​para combinar duas ou mais expressões ou condições e produzir um resultado booleano.

O resultado é verdadeiro se as condições forem satisfeitas e falso caso contrário.

A tabela a seguir exibe todos os operadores lógicos da Lua:

Operadores lógicos Visão geral Exemplos
e Retorna verdadeiro se ambos os operandos forem verdadeiros; caso contrário, retorna falso verdadeiro e verdadeiro retorna verdadeiro
ou Um resultado verdadeiro é retornado se pelo menos um dos operandos for verdadeiro; caso contrário, um resultado falso é retornado verdadeiro ou falso retorna verdadeiro
não Este operador retorna o oposto de seu operando Para verdadeiro retorna falso e vice-versa.

No exemplo abaixo, os operadores lógicos em Lua foram implementados:

Example: 

1
2
3
4
5
6
7
8
print("true and true is",true and true)
print("true and false is",true and false)
print("true or false is",true or false)
print("false or false is",false or false)
print("not true is",not true)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Lua Bitwise Operadores

Os operadores Lua bit a bit são explicados na tabela abaixo:

Operadores bit a bit Visão geral
Operador AND bit a bit (&) Retorna um 1 em cada posição de bit para a qual os bits correspondentes de ambos os operandos são 1.
Operador OR bit a bit (|) Retorna 1 em cada posição de bit em que os bits correspondentes de um ou de ambos os operandos são 1.
Operador OU exclusivo bit a bit ( ~ ) Retorna 1 em cada posição de bit para a qual os bits correspondentes de um dos operandos, mas não de ambos, são 1.
Operador de deslocamento à esquerda bit a bit (<<) Desloca os bits do primeiro operando para a esquerda pelo número de posições especificado no segundo operando.
Operador de deslocamento à direita bit a bit (>>) Desloca os bits do primeiro operando para a direita pelo número de posições especificado pelo segundo operando.
Operador NOT bit a bit (~) Inverte cada bit no operando.

O exemplo a seguir faz uso dos operadores bit a bit em Lua:

Example: 

1
2
3
4
5
6
7
8
9
print("13 and 5 =",13 and 5)
print("6 | 2 =",6 or 2)
print("5 not 3 =",not(5 == 3))
print("5 << 2 =",5 < 2)
print("7 >> 1 =",7 > 1)
print("~6 =",not(6))
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Operadores de String

Operadores de string em Lua são discutidos abaixo:

operadores Funções Visão geral Exemplos
.. Concatenação de strings Usando este operador, duas strings são concatenadas para formar outra string print('Sr'..'Examples') — retorna MrExamples
# Comprimento da string ou tabela Este operador retorna o comprimento da string ou o tamanho de uma tabela local str = 'MrExamples' print(#str) — retorna 10

O exemplo abaixo gira em torno dos operadores de string em Lua:

Example: 

1
2
3
4
5
6
print("Mr..Examples =","Mr".."Examples")
print("#MrExamples =",#"MrExamples")
print("#{3,6,9} =",#{3,6,9})
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Precedência dos Operadores Lua

Os operadores Lua são avaliados em expressões de acordo com seus níveis de precedência.

A seguir está uma lista de operadores Lua, classificados da precedência mais alta para a mais baixa:

operadores Associatividade
^ (exponenciação) Associatividade da direita para a esquerda
não (NÃO lógico) Associatividade da direita para a esquerda
* (multiplicação), / (divisão), % (módulo) Associatividade da esquerda para a direita
+ (adição), – (subtração) Associatividade da esquerda para a direita
.. (concatenação de strings) Associatividade da direita para a esquerda
< (menor que), > (maior que), <= (menor ou igual a), >= (maior ou igual a), ~= (diferente de), == (igual a) Associatividade da esquerda para a direita
e (E lógico) Associatividade da esquerda para a direita
ou (OU lógico) Associatividade da esquerda para a direita

Os operadores de precedência mais alta são avaliados antes dos operadores de precedência mais baixa. Nos casos em que dois operadores têm a mesma precedência, sua ordem de avaliação será determinada por sua associatividade, que pode ser da esquerda para a direita ou da direita para a esquerda.

Alguns exemplos foram fornecidos abaixo para a demonstração da precedência do operador em Lua:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
a = 2 + 3 * 4 -- a is 14, because multiplication has higher precedence than addition
print('a:',a)
b = (2 + 3) * 4 -- b is 20, because parentheses can be used to override precedence
print('b:',b)
c = 2 ^ 3 ^ 2 -- c is 512, because exponentiation is right-associative (i.e., evaluated from right to left)
print('c:',c)
d = true or false and not true -- d is true, because logical NOT has higher precedence than logical AND, which has higher precedence than logical OR
print('d:',d)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


Nós valorizamos o seu feedback.
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0

Assine a nossa newsletter
Digite seu e-mail para receber um resumo semanal de nossos melhores posts. Saber mais!
ícone