Operadores en Lua
Operadores en Lua
Los operadores son expresiones básicas de sintaxis que permiten realizar acciones concretas, en este articulo aprenderás que operadores tiene Lua y como usarlos
Operadores aritméticos
son aquellos que permiten realizar operaciones matemáticas básicas, Lua tiene, los operadores aritméticos comunes:
Operador | Operación |
---|---|
+ | Adición |
- | Sustracción |
* | Multiplicación |
/ | División |
// | división de piso |
% | Modulo |
^ | Exponenciación |
- | Negación (Unario) |
Operadores Relacionales
Los operadores relacionales son usados para comparar dos valores, si la exprecion evaluada es correcta dará un resultado
true
(verdadero) de lo contrario sera false
(falsa). Los operadores relacionales en Lua son:Operador | Operación |
---|---|
== | Igualdad |
~= | inequality o desigualdad |
< | Menor que |
> | Mayor que |
<= | Menor o igual que |
>= | Mayor o igual que |
El orden de los operadores funciona de la siguiente manera. Si ambos argumentos son números entonces se comparan como tales. En otro caso, si ambos argumentos son strings sus valores se comparan de acuerdo al sistema local. es de recordar que lua intenta seguir los estándares IEEE, en el caso de los operadores relacionales sigue el estándar IEEE 754
Operadores Bitwise
Los operadores Bitwise o bit a bit en Lua son:
Operador | Operación |
---|---|
& | Bitwise AND |
| | Bitwise OR |
~ | Bitwise XOR |
>> | Desplazamiento a la derecha |
<< | Desplazamiento a la izquierda |
~ | Bitwise unitario NOT |
Todas las operaciones bit a bit convierten sus operandos en enteros, operan en todos los bits de esos enteros y dan como resultado un entero.
Los cambios a derecha e izquierda llenan los bits vacantes con ceros. Los desplazamientos negativos cambian a la otra dirección; los desplazamientos con valores absolutos iguales o mayores que el número de bits en un entero dan como resultado cero (a medida que se desplazan todos los bits).
Operadores Lógicos
Los operadores lógicos en Lua son
and
, or
y not
. Como las estructuras de control todos los operadores lógicos consideran false
y nil
como falso y todo lo demás como verdadero.
El operador negación
not
siempre retorna false
o true
. El operador conjunción and
retorna su primer operando si su valor es false
o nil
; en caso contrario and
retorna su segundo operando. El operador disyunción or
retorna su primer operando si su valor es diferente de nil
y false
; en caso contrario or
retorna su segundo argumento. Tanto and
como or
usan evaluación de cortocircuito; esto es, su segundo operando se evalúa sólo si es necesario.Operador Concatenación
El operador de concatenación de strings en Lua se denota mediante dos puntos seguidos
..
. Si ambos operandos son strings o números entonces se convierte en a strings.Operador Longitud
El operador longitud se denota mediante
#
. La longitud de un string es su número de bytes (significado normal de la longitud de un string cuando cada carácter ocupa un byte).Precedencia de los operadores
La precedencia de los operadores en Lua sigue lo expuesto en la tabla siguiente de menor a mayor prioridad:
Precedencia |
---|
or |
and |
< > <= >= ~= == |
| |
~ |
& |
<< >> |
.. |
+ - |
* / // % |
operadores unitarios (not # - ~ ) |
^ |
() |
Los operadores de concatenación
..
y de exponenciación ^
son asociativos por la derecha. Todos los demás operadores son asociativos por la izquierda.Código
Bueno lo anterior parece algo extenso así que haremos un código explicando el uso de operadores
a = 2
b = 3
print("a = "..a.." b = "..b)
-- Operadores aritméticos
print(" -Operadores aritméticos- ")
print("a + b = "..a+b)
print("a - b = "..a-b)
print("a * b = "..a*b)
print("a / b = "..a/b)
print("a // b = "..a//b)
print("a % b = "..a%b)
print("a ^ b = "..a^b)
print("-a = "..-a.."-b = "..-b)
-- Operadores Relacionales
print(" -Operadores Relacionales- ")
print("a == b = ",a == b)
print("a ~= b = ",a ~= b)
print("a < b = ",a < b)
print("a > b = ",a > b)
print("a <= b = ",a <= b)
print("a >= b = ",a >= b)
--Operadores Bitwise
print(" -Operadores Bitwise- ")
print("a & b = ",a & b)
print("a | b = ",a | b)
print("a ~ b = ",a ~ b)
print("a >> = ",a >> 1)
print("a << = ",a << 1)
print("~a = ",~a )
--Operadores Lógicos
print(" -Operadores Lógicos- ")
print("a and b = ",a and b)
print("a or b = ",a or b)
print("not b = ",not b)
-- Precedencia de los operadores
print(" -Precedencia de los operadores- ")
print("10 + b * a =")
print(10+b*a)
Bom
ResponderBorrarMi mama me mima amo y mimo a mi mama
ResponderBorrar