Latest web development tutorials

operador Lua

Operador é um símbolo especial, utilizado para dizer o intérprete para executar operações matemáticas ou lógicas específicas. Lua fornece os seguintes tipos de operadores:

  • operadores aritméticos
  • Operadores relacionais
  • Operadores lógicos
  • outros operadores

operadores aritméticos

A tabela a seguir lista a linguagem Lua comumente usado operadores aritméticos, defina o valor da A 10, B valor de 20:

operadores descrição Exemplos
+ adição A saída de + B 30
- subtração A - Saída B -10
* multiplicação A * B 200 de saída
/ divisão B / A w saída 2
% restante B% A saída 0
^ exponenciação A ^ 2 saída de 100
- sinal negativo -A Saída v -10

Exemplos

Nós podemos através dos seguintes exemplos para uma compreensão mais aprofundada da aplicação de operadores aritméticos:

a = 21
b = 10
c = a + b
print("Line 1 - c 的值为 ", c )
c = a - b
print("Line 2 - c 的值为 ", c )
c = a * b
print("Line 3 - c 的值为 ", c )
c = a / b
print("Line 4 - c 的值为 ", c )
c = a % b
print("Line 5 - c 的值为 ", c )
c = a^2
print("Line 6 - c 的值为 ", c )
c = -a
print("Line 7 - c 的值为 ", c )

Os resultados da execução do programa acima:

Line 1 - c 的值为 	31
Line 2 - c 的值为 	11
Line 3 - c 的值为 	210
Line 4 - c 的值为 	2.1
Line 5 - c 的值为 	1
Line 6 - c 的值为 	441
Line 7 - c 的值为 	-21

Operadores relacionais

A tabela a seguir lista a linguagem Lua comumente usado operadores relacionais, defina um valor de 10, valor B de 20:

operadores descrição Exemplos
== Equal, testar se dois valores são iguais, retornos iguais verdadeiro, falso caso contrário (A == B) é falsa.
~ = não é igual para detectar se dois valores são iguais, retornos iguais falsos, caso contrário, ele retorna true < (A ~ = B) é verdadeiro.
> Maior do que se o valor for superior ao valor do lado direito para o lado esquerdo, devolve verdadeiro, de outra forma falsa (A> B) é falsa.
< Menor que, maior do que o valor se o valor da esquerda para a direita, e retorna falso, caso contrário, ele retorna true (A <B) é verdadeiro.
> = Maior do que ou igual, se o valor for maior que ou igual à direita da esquerda, devolve verdadeiro, de outra forma falsa (A> = B) retorna false.
<= Ou menos, se o valor for menor ou igual valor à direita da esquerda, retorna true, caso contrário false (A <= B) retorna true.

Exemplos

Podemos através dos seguintes exemplos para uma compreensão mais aprofundada da aplicação de operadores relacionais:

a = 21
b = 10

if( a == b )
then
   print("Line 1 - a 等于 b" )
else
   print("Line 1 - a 不等于 b" )
end

if( a ~= b )
then
   print("Line 2 - a 不等于 b" )
else
   print("Line 2 - a 等于 b" )
end

if ( a < b )
then
   print("Line 3 - a 小于 b" )
else
   print("Line 3 - a 大于等于 b" )
end

if ( a > b ) 
then
   print("Line 4 - a 大于 b" )
else
   print("Line 5 - a 小于等于 b" )
end

-- 修改 a 和 b 的值
a = 5
b = 20
if ( a <= b ) 
then
   print("Line 5 - a 小于等于  b" )
end

if ( b >= a ) 
then
   print("Line 6 - b 大于等于 a" )
end

Os resultados da execução do programa acima:

Line 1 - a 不等于 b
Line 2 - a 不等于 b
Line 3 - a 大于等于 b
Line 4 - a 大于 b
Line 5 - a 小于等于  b
Line 6 - b 大于等于 a

Operadores lógicos

A tabela a seguir lista a linguagem Lua comumente usado operadores lógicos, defina um valor de true, o valor B é falso:

operadores descrição Exemplos
e Operador lógico AND. Se ambas são verdadeiras condições de operação é verdade. (A e B) é falsa.
ou Operador lógico OR. Se qualquer operação é verdade em ambos os lados de onze condição é verdadeira. (A ou B) é verdadeiro.
não NÃO lógico operador. E operação lógica contrário, se a condição for verdadeira, a negação lógica é falsa. não (A e B) é verdadeiro.

Exemplos

Podemos através dos seguintes exemplos para uma compreensão mais aprofundada da aplicação de operadores lógicos:

a = true
b = true

if ( a and b )
then
   print("a and b - 条件为 true" )
end

if ( a or b )
then
   print("a or b - 条件为 true" )
end

print("---------分割线---------" )

-- 修改 a 和 b 的值
a = false
b = true

if ( a and b )
then
   print("a and b - 条件为 true" )
else
   print("a and b - 条件为 false" )
end

if ( not( a and b) )
then
   print("not( a and b) - 条件为 true" )
else
   print("not( a and b) - 条件为 false" )
end

Os resultados da execução do programa acima:

a and b - 条件为 true
a or b - 条件为 true
---------分割线---------
a and b - 条件为 false
not( a and b) - 条件为 true

outros operadores

A tabela a seguir lista os operadores e de cálculo tabelas linguagem concatenação Lua ou o comprimento dos operadores de string:

operadores descrição Exemplos
.. Concatenação de duas cadeias a..b, que é um "Olá", b é "World", a saída é "Olá Mundo".
# operador unário, retorna o comprimento de corda ou mesa. # "Olá" retorna 5

Exemplos

Podemos através dos seguintes exemplos para uma compreensão mais completa da conexão com o operador ou cordas aplicações de operador de mesa cálculo de comprimento:

a = "Hello "
b = "World"

print("连接字符串 a 和 b ", a..b )

print("b 字符串长度 ",#b )

print("字符串 Test 长度 ",#"Test" )

print("w3cschool本教程网址长度 ",#"www.w3cschool.cc" )

Os resultados da execução do programa acima:

连接字符串 a 和 b 	Hello World
b 字符串长度 	5
字符串 Test 长度 	4
w3cschool本教程网址长度 	16

Precedência de operador

Em ordem decrescente:

^
not    - (unary)
*      /
+      -
..
<      >      <=     >=     ~=     ==
and
or

Além de tudo o exterior .. ^ e operadores binários são deixados conectados.

a+i < b/2+1          <-->       (a+i) < ((b/2)+1)
5+x^2*8              <-->       5+((x^2)*8)
a < y and y <= z     <-->       (a < y) and (y <= z)
-x^2                 <-->       -(x^2)
x^y^z                <-->       x^(y^z)

Exemplos

Podemos através dos seguintes exemplos para uma compreensão mais aprofundada da precedência Lua operador de idioma:

a = 20
b = 10
c = 15
d = 5

e = (a + b) * c / d;-- ( 30 * 15 ) / 5
print("(a + b) * c / d 运算值为  :",e )

e = ((a + b) * c) / d; -- (30 * 15 ) / 5
print("((a + b) * c) / d 运算值为 :",e )

e = (a + b) * (c / d);-- (30) * (15/5)
print("(a + b) * (c / d) 运算值为 :",e )

e = a + (b * c) / d;  -- 20 + (150/5)
print("a + (b * c) / d 运算值为   :",e )

Os resultados da execução do programa acima:

(a + b) * c / d 运算值为  :	90.0
((a + b) * c) / d 运算值为 :	90.0
(a + b) * (c / d) 运算值为 :	90.0
a + (b * c) / d 运算值为   :	50.0