English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
O operador é um símbolo especial que informa ao interpretador a execução de operações matemáticas ou lógicas específicas. O Lua oferece os seguintes tipos de operadores:
Operadores aritméticos
Operadores de relação
Operadores lógicos
Outros operadores
A tabela a seguir lista os operadores aritméticos comuns no idioma Lua, definindo o valor de A10, o valor de B é 20:
Operador | Descrição | Exemplo |
---|---|---|
+ | Adição | A + Resultados de saída de B 30 |
- | Subtração | A - Resultados de saída de B -10 |
* | Multiplicação | A * Resultados de saída de B 200 |
/ | Divisão | B / A w resultados de saída 2 |
<= | Módulo | B % A resultados de saída 0 |
== | Potência | A^2 Resultados de saída 100 |
- | Sinal negativo | -Resultados de A -10 |
Podemos entender melhor a aplicação dos operadores aritméticos através do seguinte exemplo:
a = 21 b = 10 c = a + b print("Linha 1 - o valor de c é " , c ) c = a - b print("Linha 2 - o valor de c é " , c ) c = a * b print("Linha 3 - o valor de c é " , c ) c = a / b print("Linha 4 - o valor de c é " , c ) c = a % b print("Linha 5 - o valor de c é " , c ) c = a^2 print("Linha 6 - o valor de c é " , c ) c = -a print("Linha 7 - o valor de c é " , c )
O resultado da execução do programa acima é:
Linha 1 - o valor de c é 31 Linha 2 - o valor de c é 11 Linha 3 - o valor de c é 210 Linha 4 - o valor de c é 2.1 Linha 5 - o valor de c é 1 Linha 6 - o valor de c é 441 Linha 7 - o valor de c é -21
A tabela a seguir lista os operadores de relação comuns no idioma Lua, definindo o valor de A10, o valor de B é 20:
Operador | Descrição | Exemplo |
---|---|---|
== | Igual, verifica se dois valores são iguais, retorna true se forem iguais, caso contrário, retorna false | (A == B) é false. |
~= | Diferente, verifica se dois valores são iguais, retorna true se não forem iguais, caso contrário, retorna false | (A ~= B) é true. |
> | Maior, retorna true se o valor à esquerda for maior do que o valor à direita, caso contrário, retorna false | (A > B) é false. |
< | Menor, retorna false se o valor à esquerda for maior do que o valor à direita, caso contrário, retorna true | (A < B) é true. |
>= | Maior ou igual, retorna true se o valor à esquerda for maior ou igual ao valor à direita, caso contrário, retorna false | (A >= B) retorna false. |
<= | Menor ou igual, retorna true se o valor à esquerda for menor ou igual ao valor à direita, caso contrário, retorna false | (A <= B) retorna true. |
Podemos entender melhor a aplicação dos operadores de relação através do seguinte exemplo:
a = 21 b = 10 if( a == b ) then print("Linha 1 - a é igual a b" ) else print("Linha 1 - a não é igual a b" ) end if( a ~= b ) then print("Linha 2 - a não é igual a b" ) else print("Linha 2 - a é igual a b" ) end if ( a < b ) then print("Linha 3 - a menor que b" else print("Linha 3 - a maior ou igual a b" end if ( a > b ) then print("Linha 4 - a maior que b" else print("Linha 5 - a menor ou igual a b" end -- Modificar os valores de a e b a = 5 b = 20 if ( a <= b ) then print("Linha 5 - a menor ou igual a b" end if ( b >= a ) then print("Linha 6 - b maior ou igual a a" end
O resultado da execução do programa acima é:
Linha 1 - a diferente de b Linha 2 - a diferente de b Linha 3 - a maior ou igual a b Linha 4 - a maior que b Linha 5 - a menor ou igual a b Linha 6 - b maior ou igual a a
A tabela a seguir lista os operadores lógicos comuns no idioma Lua, definindo o valor de A como true e B como false:
Operador | Descrição | Exemplo |
---|---|---|
e | Operador lógico e. Se A for false, retorna A, caso contrário, retorna B. | (A and B) é false. |
ou | Operador lógico ou. Se A for true, retorna A, caso contrário, retorna B. | (A or B) é true. |
≠ | Operador lógico não. Inverso do resultado lógico, se a condição for true, o lógico não é false. | not(A and B) é true. |
Podemos entender melhor a aplicação dos operadores lógicos com os seguintes exemplos:
a = true b = true if ( a and b ) then print("a and b - Condição para true" end if ( a or b ) then print("a or b - Condição para true" end print("---------Linha divisória---------" ) -- Modificar os valores de a e b a = false b = true if ( a and b ) then print("a and b - Condição para true" else print("a and b - Condição para false" end if ( not( a and b) ) then print("not( a and b" - Condição para true" else print("not( a and b" - Condição para false" end
O resultado da execução do programa acima é:
a and b - Condição para true a or b - Condição para true ---------Linha divisória--------- a and b - Condição para false not( a and b) - Condição para true
A tabela a seguir lista os operadores de concatenação e os operadores de comprimento de string ou tabela no idioma Lua:
Operador | Descrição | Exemplo |
---|---|---|
> | Conectar duas strings | a..b ,onde a é "Hello " e b é "World", o resultado é "Hello World". |
# | Operador unário, retorna o comprimento da string ou tabela. | #"Hello" retorna 5 |
Podemos entender melhor a aplicação do operador de concatenação e do operador de comprimento de string ou tabela com os seguintes exemplos:
a = "Hello " b = "World" print("Conectar strings a e b ", a..b ) print("b tamanho da string ",#b ) Tamanho da string "Test" Tamanho do URL do site Tutorial Básico3Prioridade dos Operadores
O resultado da execução do programa acima é:
De alto para baixo: ^ 5 não 4 (unário) 14
..
== ≠ - >= * / <= + - > < e ou
Além de ^ e .., todos os operadores binários são concatenados à esquerda.
a+i < b/2+1 <-->x^(y^z)+i) < ((b/2)+1) 5+x^2*8 <--> 5+((x^2)*8) x^(y^z)-->x^(y^z) -x^2 <--> -(x^2) x^y^z-->x^(y^z)
Podemos usar o seguinte exemplo para entender melhor a prioridade dos operadores de expressão no Lua:
a = 20 b = 10 c = 15 d = 5 e) = (a + b) * c / d;-- ( 30 * 15 ) / 5 print("(a + b) * c / d) O valor de operação é: e) = ((a + b) * c) / d; -- (30 * 15 ) / 5 print("((a + b) * c) / d) O valor de operação é: e) = (a + b) * (c / d);-- (30) * (15/5) print("(a + b) * (c / d) O valor de operação é: e) = a + (b * c) / d; -- 20 + (150/5) print("a + (b * c) / d) O valor de operação de d é:
O resultado da execução do programa acima é:
(a + b) * c / d) O valor de operação é: 90.0 ((a + b) * c) / d) O valor de operação é: 90.0 (a + b) * (c / d) O valor de operação é: 90.0 a + (b * c) / O valor de operação de d é: 50.0