Operadores

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

Un operador **** es un símbolo para realizar una operación o evaluación condicional.

Lógico

Los operadores lógicos devuelven valores dependiendo de los valores booleanos de los argumentos dados. Si un argumento no es false o nil, entonces el operador lo evalúa como true . A diferencia de muchos otros idiomas, Luau considera que tanto el cero como la cadena vacía son true. La siguiente tabla resume cómo se comportan los operadores lógicos en condicionales.

OperadorDescripciones
yValora como true solo si ambas condiciones son verdaderas
oValora como true si cualquiera de las condiciones es verdadera
noEvalúa como lo contrario de la condición

y

El operador binario and devuelve uno de los dos argumentos. Si el primer argumento se evalúa como true, entonces devuelve el segundo argumento. De lo contrario, devuelve el primer argumento.


print(4 and 5) -- 5 veces
print(nil and 12) -- cero
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

Puede usar and para probar múltiples condiciones en estructuras de control como if declaraciones y while bucles. Por ejemplo, la siguiente if``then prueba que ambas condiciones son verdaderas:


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

o

El operador binario or devuelve uno de los dos argumentos. Si el primer argumento se evalúa como true, entonces devuelve el primer argumento. De lo contrario, devuelve el segundo argumento.


local y = x or 1
print(y) -- 1 porque x no existe y por lo tanto es nulo
local d = false
local e = d or 1
print(e) -- 1 porque d es falso
print(4 or 5) -- 4 veces
print(nil or 12) -- 12 años
print(false or 12) -- 12 años
print(false or true) -- verdad
print(false or false) -- falso
print(true or false) -- verdad
print(true or true) -- true

Puede usar or para realizar pruebas lógicas complejas en estructuras de control. Por ejemplo, la siguiente if``then prueba si dos condiciones son verdaderas o una tercera condición es verdadera:


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

no

El operador unario not devuelve el valor booleano opuesto al argumento. Si el argumento es false o nil, entonces devuelve true. De lo contrario, devuelve false.


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

Puede usar el operador not para activar un condicional o un bucle si una variable es false o nil.


local nilVariable -- La variable está declarada pero no tiene valor, por lo que es nula
local falseVariable = false -- La variable se declara con el valor de falso
if not nilVariable then
print(nilVariable) -- Produce "nil" porque nil no es verdad
end
if not falseVariable then
print(falseVariable) -- Produce "false" porque false no es true
end

También puede usar el operador not para probar lo contrario de una sentencia de múltiples condiciones completa. En la siguiente muestra de código, el if``then prueba condicionalmente que no es cierto que tres sea mayor que cuatro ni que cinco sea mayor que cuatro.


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.

Relacional

Los operadores relacionales comparan dos parámetros y devuelven un boolean: true o false.

OperadorDescripciónEjemploMetamétodo asociado
==Igual a3 == 5falso__eq
~=No es igual a3 ~ = 5verdad
>Mayor que3 > 5falso
<Menos de3 < 5verdad__lt
>=Mayor que o igual a3 >= 5falso
<=Menor o igual a3 <= 5verdad__le

Aritmética

Lua admite los operadores binarios habituales junto con la exponenciación, el módulo y la negación unaria.

OperadorDescripciónEjemploMetamétodo asociado
+Adición1 + 1 = 2__ añadir
-Subtracción1 - 1 = 0__sub
*Multiplicación5 * 5 = 25__mul
/División10/5 = 2__div
//División de Suelo10 // 4 = 2
-10 // 4 = -3
__idiv
^Exponenciación2 ^ 4 = 16__pow
%Módulo13% 7 = 6__mod
-Negación unaria-2 = 0 - 2__unm

Asignación de compuesto

Puede usar operadores de asignación compuesta para establecer una variable igual al resultado de una operación donde el primer parámetro es el valor actual de la variable.

La operación en una asignación compuesta ocurre una vez. Por ejemplo, si una expresión genera un índice aleatorio en una tabla, Luau usa el mismo índice tanto para la operación como para la asignación.

En los siguientes ejemplos, suponga local x = 3 .

OperadorOperaciónEjemploNuevo valor de x
+=Adiciónx += 25
-=Subtracciónx -= 21
*=Multiplicaciónx *= 26
/=Divisiónx /= 21.5
//=División de Suelox //= 21
%=Módulox %= 21
^ =Exponenciaciónx ^ = 29
..=Concatenaciónx ..= "¡Mundo!""¡3 Mundo!"

Misceláneo

Los operadores varios incluyen concatenación y longitud .

OperadorDescripciónEjemploMetamétodo asociado
..Conecta dos cuerdasprint ("Hola " .. "¡Mundo!")__concat
#Longitud de la mesaSi tableVar = , entonces #tableVar == 3 .__len