Un opérateur est un symbole pour exécuter une opération ou une évaluation conditionnelle.
Logique
Les opérateurs logiques retournent des valeurs en fonction des valeurs de retour des arguments donnés. Si un argument n'est pas false ou nil, alors l'opérateur l'évalue comme true. Contrairement à de nombreux autres langages, Luau prend en compte à la fois le zéro et la chaîne vide comme 2> tru2> . Le tableau suivant rés
Opérateur | Descrivez |
---|---|
et | Évalue comme vrai seulement si les deux conditions sont vraies |
ou | Évalue comme vrai si une des conditions est vraie |
pas | Évalue comme le contraire de la condition |
et
L'opérateur binaire and renvoie l'un des deux arguments. Si le premier argument se termine par true, alors il renvoie le deuxième argument. Sinon, il renvoie le premier argument.
print(4 and 5) -- 5print(nil and 12) -- zéroprint(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 3> 4> while4> boucles4>. Par exemple, la déclaration suivante 8> if8> — 1> then1> teste que deux conditions sont toutes les deux v
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
ou
L'opérateur binaire or renvoie l'un des deux arguments. Si le premier argument se termine par true, alors il renvoie 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 car 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 — 1> then1> teste si deux conditions sont vraies ou non 4> ou4> 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 renvoie la valeur de retour contraire du argument. Si l'argument est false ou nil, il renvoie la valeur de retour 1> tru1> . Sinon, il renvoie 4> false4> .
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 un boucle si une variable est false ou nil.
local nilVariable -- 变量 est déclaré mais n'a pas de valeur, donc c'est zérolocal falseVariable = false -- Variable est déclaré avec une valeur de fauxif not nilVariable thenprint(nilVariable) -- Affiche « nil » car nil n'est pas vraiendif not falseVariable thenprint(falseVariable) -- Affiche « faux » parce que « faux » n'est pas vraiend
Vous pouvez également utiliser l'opérateur not pour tester pour le contraire d'une déclaration multicolonnes entière. Dans l'exemple de code suivant, les if — then les tests conditionnels qui ne sont ni vrai que trois sont plus grands que quatre ni vrai que cinq sont plus grands que 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 renvoient un button : true ou false.
Opérateur | Description | Exemple | Métaméthode associée |
---|---|---|---|
== | Égal à | 3 == 5 → faux | __eq |
Ne pas être égale à | 3 5 → oui | ||
> | Supérieur à | 3 > 5 → faux | |
< | Moins de | 3 → vrai | __lt |
>= | Supérieur à ou égal à | 3 >= 5 → faux | |
Moins de ou égal à | 3) → vrai | __le |
Arithmétique
Lua prend en charge les opérateurs binaires habituels, ainsi que l' exponentation, la modulation et la négation unaire.
Opérateur | Description | Exemple | Métaméthode associée |
---|---|---|---|
+ | Ajouter | 1 + 1 = 2 | __add |
- | Soustraction | 1 - 1 = 0 | __sub |
*) | Multiplication | 5 * 5 = 25 | __mul |
/ | Division | 10 / 5 = 2 | __div |
// | Division du plancher | 10 // 4 = 2-10 // 4 = -3 | __idiv |
^ | Exposition | 2 ^ 4 = 16 | __pow |
% | Module | 13 % 7 = 6 | __mod |
- | Négation unaire | -2 = 0 - 2 | __unm |
Répartition des composés
Vous pouvez utiliser les opérateurs d'attributs de composé pour définir une variable correspondant à la valeur actuelle d'un paramètre.
L'opération dans une attribuition de composé 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 |
---|---|---|---|
+= | Ajouter | x += 2 | 5 |
Soustraction | x -= 2 | 1 | |
* | Multiplication | x*2 | 6 |
/= | Division | x /= 2 | 1.5 |
//= | Division du plancher | x //= 2 | 1 |
%=) | Module | x %= 2 | 1 |
^= | Exposition | x ^= 2 | 9 |
..= | Concaténation | x ..= " Monde!" | « 3 World ! » |
Divers
Les opérateurs divers incluent concaténation et longueur.
Opérateur | Description | Exemple | Métaméthode associée |
---|---|---|---|
.. | Concasse deux chaînes | imprimer("Bonjour " .. "Monde !") | __concat |
# | Longueur de la table | Si tableVar = 1, 2, 3 , alors #tableVar == 3 . | __len |