Opérateurs

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

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érateurDescriptions
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) -- 5
print(nil and 12) -- néant
print(false and 12) -- faux
print(false and true) -- faux
print(false and false) -- faux
print(true and false) -- faux
print(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 ifthen teste que deux conditions sont toutes deux vraies :


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

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 1
print(y) -- 1 car x n'existe pas et est donc nul
local d = false
local e = d or 1
print(e) -- 1 parce que d est faux
print(4 or 5) -- 4
print(nil or 12) -- 12
print(false or 12) -- 12
print(false or true) -- vrai
print(false or false) -- faux
print(true or false) -- vrai
print(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 ifthen ‑ teste si deux conditions sont vraies ou qu'une troisième condition est vraie :


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

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) -- faux
print(not false) -- vrai
print(not nil) -- vrai
print(not "text") -- faux
print(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 nul
local falseVariable = false -- La variable est déclarée avec la valeur false
if not nilVariable then
print(nilVariable) -- Produit "néant" car nil n'est pas vrai
end
if not falseVariable then
print(falseVariable) -- Produit "faux" car faux n'est pas vrai
end

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 ifthen qui ne sont ni vrais que trois est supérieur à quatre ni vrais que cinq est supérieur à quatre.


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.

Relationnel

Les opérateurs relationnels comparent deux paramètres et retournent un boolean : true ou false .

OpérateurAvertissementExempleMéthode métamatique associée
==Égal à3 == 5false__eq
~=N'égal pas3 ~= 5true
>Plus grand que3 > 5false
<Moins de3 < 5true__lt
>=Plus grand ou égal à3 >= 5false
<=Moins de ou égal à3 <= 5true__le

Arithmétique

Luau prend en charge les opérateurs binaires habituels ainsi que l'exposition, le modulus et la négation unitaire.

OpérateurAvertissementExempleMéthode métamatique associée
+Ajout1 + 1 = 2__add
-Sous-traitance1 - 1 = 0__sub
*La multiplication5 * 5 = 25__mul
/Division10 / 5 = 2__div
//Division d'étage

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

__idiv
^Exposition exponentielle2 ^ 4 = 16__pow
%Modèle13 % 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érateurOpérationExempleNouvelle valeur de x
+=Ajoutx += 25
-=Sous-traitancex -= 21
*=La multiplicationx *= 26
/=Divisionx /= 21.5
//=Division d'étagex //= 21
%=Modèlex %= 21
^=Exposition exponentiellex ^= 29
..=Concaténationx ..= " World!" "3 World!"

Divers

Les opérateurs divers incluent la concaténation et la longueur .

OpérateurAvertissementExempleMéthode métamatique associée
..Concatène deux chaînesprint("Hello " .. "World!")__concat
#Longueur de la tableSi tableVar = {1, 2, 3}, alors #tableVar == 3.__len