Un operador operador es un símbolo para realizar una operación o una evaluación condicional.
Lógico
Los operadores lógicos devuelven valores dependiendo de los valores de los argumentos proporcionados. Si un argumento no es false o nil , entonces el operador lo evaluará como true . A diferencia de muchos otros idiomas, Luau considera tanto el valor nulo como la cadena vacía como 1> true1> . La siguiente tabla resume cómo
Operador | Descripciones |
---|---|
y | Se evaluará como cierto sólo si ambas condiciones son ciertas |
o: | Evalúa como cierto si ambas condiciones son ciertas |
no | Evalúa como el opuesto de la condición |
y
El operador binario and 返回一个 de los dos argumentos. Si el primer argumento se evaluó para true , entonces regresa el segundo argumento. De lo contrario, regresa el primer argumento.
print(4 and 5) -- 5print(nil and 12) -- nuloprint(false and 12) -- falsoprint(false and true) -- falsoprint(false and false) -- falsoprint(true and false) -- falsoprint(true and true) -- true
Puede usar and para probar múltiples condiciones en estructuras de control como if declaraciones y 3> 4> while4> ciclos. Por ejemplo, la siguiente 7> if7> — 0> entonces 0> declaración prueba que dos condiciones son ambas
local pasta = truelocal tomatoSauce = trueif pasta == true and tomatoSauce == true thenprint("We have spaghetti dinner")elseprint("Something is missing...")end-- Output: We have spaghetti dinner
o
El operador binario or 返回 2 argumentotrue,那么返回 1 。否则,它将返回 2 。
local y = x or 1print(y) -- 1 porque x no existe y por lo tanto es nulolocal d = falselocal e = d or 1print(e) -- 1 porque d es falsoprint(4 or 5) -- 4print(nil or 12) -- 12print(false or 12) -- 12print(false or true) -- ciertoprint(false or false) -- falsoprint(true or false) -- ciertoprint(true or true) -- true
Puedes usar or para realizar pruebas lógicas complejas en estructuras de control . Por ejemplo, la siguiente if — 1> then1> declaración de prueba prueba si dos condiciones son ciertas 4>o4> una tercera condición es cierta:
local pasta = falselocal tomatoSauce = truelocal garlicBread = trueif (pasta == true and tomatoSauce == true) or garlicBread == true thenprint("We have either spaghetti dinner OR garlic bread")elseprint("Something is missing...")end-- Output: We have either spaghetti dinner OR garlic bread
no
El operador unario not 返回 argument 的反向Boolean值。 Si el argumento es false o nil , entonces 返回 1> true1> . De lo contrario, 返回 4> false4> .
print(not true) -- falsoprint(not false) -- ciertoprint(not nil) -- ciertoprint(not "text") -- falsoprint(not 0) -- false
Puedes usar el operador not para activar un operador condicional o bucle si una variable es false o nil .
local nilVariable -- Variable está declarado pero no tiene valor, así que es nulolocal falseVariable = false -- Variable se declara con un valor de falsoif not nilVariable thenprint(nilVariable) -- Outputs "nil" porque nil no es ciertoendif not falseVariable thenprint(falseVariable) -- Outputs "false" porque false no es ciertoend
También puede usar el operador not para probar el opuesto de una declaración multicondicional completa. En el siguiente ejemplo de código, las pruebas condicionales if — then que no son ciertas que tres son mayores que cuatro o no son ciertas que cinco son mayores que cuatro.
local three = 3local four = 4local five = 5if not (three > four or five < four) thenprint("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 button : true o false .
Operador | Descripción | Ejemplo | Método asociado |
---|---|---|---|
==) | Equivalente a | 3 == 5 → falso | __eq |
: | No es igual a | 3 5 → verificado | |
> | Mayor que | 3 > 5 → falso | |
< | Menos de | 3 < 5 → verdadero | __lt |
>=) | Mayor que o igual a | 3 >= 5 → falso | |
Menos que o igual que | 3 <= 5 → verdadero | __le |
Aritmética
Lua soporta los operadores binarios habituales junto con la expresión, la modulación y la negación unaria.
Operador | Descripción | Ejemplo | Método asociado |
---|---|---|---|
+ | Añadir | 1 + 1 = 2 | __add |
- | Sustracción | 1 - 1 = 0 | __sub |
* | Multiplicación | 5 * 5 = 25 | __mul |
/: | División | 10 / 5 = 2 | __div |
//) | División de Piso | 10 // 4 = 2-10 // 4 = -3 | __idiv |
^) | Expresión | 2 ^ 4 = 16 | __pow |
% | Módulo | 13 % 7 = 6 | __mod |
- | Negación unaria | -2 = 0 - 2 | __unm |
Asignación de compuestos
Puede usar operadores de asignación de compuestos para establecer una variable igual a el resultado de una operación donde el primer parámetro es el valor actual de la variable.
La operación en una asignación de compuesto ocurre una vez. Por ejemplo, si una expresión genera un índice aleatorio en una tabla, Luau usa el mismo índice para ambas la operación y la asignación.
En los siguientes ejemplos, suponer local x = 3 .
Operador | Operación | Ejemplo | Nuevo Valor de x |
---|---|---|---|
(+) | Añadir | x += 2 | 5 |
Sustracción | x -= 2 | 1 | |
*) | Multiplicación | x*2 | 6 |
/= | División | x /= 2 | 1.5 |
//= | División de Piso | x //= 2 | 1 |
%=) | Módulo | x%=2 | 1 |
^= | Expresión | x ^= 2 | 9 |
..= | Concatenación | x ..= "Mundo!" | "3 Mundo!" |
Misceláneo
Los operadores misceláneos incluyen conectividad y longitud.
Operador | Descripción | Ejemplo | Método asociado |
---|---|---|---|
.. | Concata dos cadenas | imprimir ("Hello " .. "World!"). | __concat: |
# | Longitud de la tabla | Si tableVar = 1, 2, 3 , entonces #tableVar == 3 . | __len |