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ógicos

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 lenguajes, Luau considera tanto cero como la cadena vacía como true. La siguiente tabla resume cómo se comportan los operadores lógicos en condicionales.

OperadorDescripciones
andSe evalúa como true solo si ambas condiciones son verdaderas
orSe evalúa como true si alguna de las condiciones es verdadera
notSe evalúa como el opuesto de la condición

and

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
print(nil and 12) -- nil
print(false and 12) -- false
print(false and true) -- false
print(false and false) -- false
print(true and false) -- false
print(true and true) -- true

Puedes usar and para probar múltiples condiciones en estructuras de control como las instrucciones if y los while. Por ejemplo, la siguiente instrucción ifthen verifica que ambas condiciones sean verdaderas:


local pasta = true
local tomatoSauce = true
if pasta == true and tomatoSauce == true then
print("Tenemos cena de espagueti")
else
print("Algo falta...")
end
-- Output: Tenemos cena de espagueti

or

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 nil
local d = false
local e = d or 1
print(e) -- 1 porque d es false
print(4 or 5) -- 4
print(nil or 12) -- 12
print(false or 12) -- 12
print(false or true) -- true
print(false or false) -- false
print(true or false) -- true
print(true or true) -- true

Puedes usar or para realizar pruebas lógicas complejas en estructuras de control. Por ejemplo, la siguiente instrucción ifthen verifica si dos condiciones son verdaderas o si 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("Tenemos cena de espagueti O pan de ajo")
else
print("Algo falta...")
end
-- Output: Tenemos cena de espagueti O pan de ajo

not

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


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

Puedes usar el operador not para activar una condición o un bucle si una variable es false o nil.


local nilVariable -- La variable se declara pero no tiene valor, por lo que es nil
local falseVariable = false -- La variable se declara con valor de false
if not nilVariable then
print(nilVariable) -- Salida "nil" porque nil no es true
end
if not falseVariable then
print(falseVariable) -- Salida "false" porque false no es true
end

También puedes usar el operador not para probar el opuesto de una declaración de múltiples condiciones. En el siguiente ejemplo de código, la condición ifthen verifica que ni sea cierto que tres es mayor que cuatro ni que cinco es mayor que cuatro.


local three = 3
local four = 4
local five = 5
if not (three > four or five < four) then
print("Tres es menor que 4 y cinco es mayor que 4.")
end
-- Output: Tres es menor que 4 y cinco es mayor que 4.

Relacionales

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

OperadorDescripciónEjemploMétodo metamétodo asociado
==Igual a3 == 5false__eq
~=No igual a3 ~= 5true
>Mayor que3 > 5false
<Menor que3 < 5true__lt
>=Mayor o igual que3 >= 5false
<=Menor o igual que3 <= 5true__le

Aritméticos

Luau soporta los operadores binarios habituales junto con exponentiación, módulo y negación unaria.

OperadorDescripciónEjemploMétodo metamétodo asociado
+Suma1 + 1 = 2__add
-Resta1 - 1 = 0__sub
*Multiplicación5 * 5 = 25__mul
/División10 / 5 = 2__div
//División entera

10 // 4 = 2
-10 // 4 = -3

__idiv
^Exponentiación2 ^ 4 = 16__pow
%Módulo13 % 7 = 6__mod
-Negación unaria-2 = 0 - 2__unm

Asignación compuesta

Puedes 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 utiliza el mismo índice tanto para la operación como para la asignación.

En los siguientes ejemplos, supón que local x = 3.

OperadorOperaciónEjemploNuevo valor de x
+=Sumax += 25
-=Restax -= 21
*=Multiplicaciónx *= 26
/=Divisiónx /= 21.5
//=División enterax //= 21
%=Módulox %= 21
^=Exponentiaciónx ^= 29
..=Concatenaciónx ..= " ¡Mundo!" "3 ¡Mundo!"

Varios

Los operadores varios incluyen concatenación y longitud.

OperadorDescripciónEjemploMétodo metamétodo asociado
..Concatena dos cadenasprint("¡Hola " .. "Mundo!")__concat
#Longitud de la tablaSi tableVar = {1, 2, 3}, entonces #tableVar == 3.__len
©2026 Roblox Corporation. Roblox, el logotipo de Roblox y "Powering Imagination" son algunas de nuestras marcas registradas y no registradas en los Estados Unidos y otros países.