Un opérateur **** est un symbole pour effectuer une opération ou une évaluation conditionnelle.
Logique
Les opérateurs logiques retournent des valeurs en fonction des valeurs booléennes des arguments donnés.Si un argument n'est pas false ou nil, l'opérateur l'évalue comme true.Contrairement à de nombreuses autres langues, Luau considère à la fois la valeur zéro et la chaîne vide comme true .La table suivante résume la manière dont les opérateurs logiques se comportent dans les conditions conditionnelles.
Opérateur | Descriptions |
---|---|
and | Évalue comme true seulement si les deux conditions sont vraies |
or | Évalue comme true si l'une des conditions est vraie |
not | Évalue comme l'opposé de la condition |
et
L'opérateur binaire and retourne l'un des deux arguments.Si le premier argument évalue à true , alors il retourne le deuxième argument.Sinon, il renvoie le premier argument.
print(4 and 5) -- 5print(nil and 12) -- néantprint(false and 12) -- fauxprint(false and true) -- fauxprint(false and false) -- fauxprint(true and false) -- fauxprint(true and true) -- true
Vous pouvez utiliser and pour tester plusieurs conditions dans structures de contrôle telles que if déclarations et while boucles .Par exemple, la déclaration suivante if ‑ then teste que deux conditions sont toutes deux vraies :
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
or
L'opérateur binaire or retourne l'un des deux arguments.Si le premier argument est évalué à true, alors il retourne le premier argument.Sinon, il renvoie le deuxième argument.
local y = x or 1print(y) -- 1 car x n'existe pas et est donc nullocal d = falselocal e = d or 1print(e) -- 1 parce que d est fauxprint(4 or 5) -- 4print(nil or 12) -- 12print(false or 12) -- 12print(false or true) -- vraiprint(false or false) -- fauxprint(true or false) -- vraiprint(true or true) -- true
Vous pouvez utiliser or pour effectuer des tests logiques complexes dans structures de contrôle.Par exemple, la déclaration suivante if ‑ then ‑ teste si deux conditions sont vraies ou qu'une troisième condition est vraie :
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
pas
L'opérateur unaire not retourne la valeur booléenne opposée de l'argument.Si l'argument est false ou nil , alors il renvoie true .Sinon, il renvoie false .
print(not true) -- fauxprint(not false) -- vraiprint(not nil) -- vraiprint(not "text") -- fauxprint(not 0) -- false
Vous pouvez utiliser l'opérateur not pour déclencher une condition ou une boucle si une variable est false ou nil.
local nilVariable -- La variable est déclarée mais n'a pas de valeur, donc c'est nullocal falseVariable = false -- La variable est déclarée avec la valeur falseif not nilVariable thenprint(nilVariable) -- Produit "néant" car nil n'est pas vraiendif not falseVariable thenprint(falseVariable) -- Produit "faux" car faux n'est pas vraiend
Vous pouvez également utiliser l'opérateur not pour tester l'inverse d'une déclaration multi-condition entière.Dans l'exemple de code suivant, les tests conditionnels if‑then qui ne sont ni vrais que trois est supérieur à quatre ni vrais que cinq est supérieur à quatre.
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.
Relationnel
Les opérateurs relationnels comparent deux paramètres et retournent un boolean : true ou false .
Opérateur | Avertissement | Exemple | Méthode métamatique associée |
---|---|---|---|
== | Égal à | 3 == 5 → false | __eq |
~= | N'égal pas | 3 ~= 5 → true | |
> | Plus grand que | 3 > 5 → false | |
< | Moins de | 3 < 5 → true | __lt |
>= | Plus grand ou égal à | 3 >= 5 → false | |
<= | Moins de ou égal à | 3 <= 5 → true | __le |
Arithmétique
Luau prend en charge les opérateurs binaires habituels ainsi que l'exposition, le modulus et la négation unitaire.
Opérateur | Avertissement | Exemple | Méthode métamatique associée |
---|---|---|---|
+ | Ajout | 1 + 1 = 2 | __add |
- | Sous-traitance | 1 - 1 = 0 | __sub |
* | La multiplication | 5 * 5 = 25 | __mul |
/ | Division | 10 / 5 = 2 | __div |
// | Division d'étage | 10 // 4 = 2``-10 // 4 = -3 | __idiv |
^ | Exposition exponentielle | 2 ^ 4 = 16 | __pow |
% | Modèle | 13 % 7 = 6 | __mod |
- | Négation unitaire | -2 = 0 - 2 | __unm |
Attribution de composé
Vous pouvez utiliser des opérateurs d'assignation complexes pour définir une variable égale au résultat d'une opération où le premier paramètre est la valeur actuelle de la variable.
L'opération dans une affectation composée se produit une fois.Par exemple, si une expression génère un index aléatoire dans une table, Luau utilise le même index pour l'opération et l'attribution.
Dans les exemples suivants, supposez local x = 3.
Opérateur | Opération | Exemple | Nouvelle valeur de x |
---|---|---|---|
+= | Ajout | x += 2 | 5 |
-= | Sous-traitance | x -= 2 | 1 |
*= | La multiplication | x *= 2 | 6 |
/= | Division | x /= 2 | 1.5 |
//= | Division d'étage | x //= 2 | 1 |
%= | Modèle | x %= 2 | 1 |
^= | Exposition exponentielle | x ^= 2 | 9 |
..= | Concaténation | x ..= " World!" | "3 World!" |
Divers
Les opérateurs divers incluent la concaténation et la longueur .
Opérateur | Avertissement | Exemple | Méthode métamatique associée |
---|---|---|---|
.. | Concatène deux chaînes | print("Hello " .. "World!") | __concat |
# | Longueur de la table | Si tableVar = {1, 2, 3}, alors #tableVar == 3. | __len |