Operatorzy

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Operator jest symbolem wykonywania operacji lub oceny warunkowej .

Logiczne

Operatory logiczne zwracają wartości w zależności od wartości booleanowych podanych argumentów.Jeśli argument nie jest false lub nil, operator ocenia go jako true.W przeciwieństwie do wielu innych języków Luau rozważa zarówno zero, jak i pustą strunę jako true .Poniższa tabela podsumowuje, w jaki sposób operatory logiczne zachowują się w warunkach.

OperatorOpisy
andOcenia jako true tylko wtedy, gdy oba warunki są prawdziwe
orOcenia jako true jeśli którekolwiek z warunków jest prawdą
notOcenia jako przeciwieństwo warunku

oraz

Operator binarny and zwraca jeden z dwóch argumentów.Jeśli pierwszy argument oceni się do true, to zwraca drugi argument.W przeciwnym razie zwraca pierwszy argument.


print(4 and 5) -- 5
print(nil and 12) -- niezerowy
print(false and 12) -- fałsz
print(false and true) -- fałsz
print(false and false) -- fałsz
print(true and false) -- fałsz
print(true and true) -- true

Możesz użyć and do testowania wielu warunków w strukturach kontroli takich jak if oświadczenia i while pętle .Na przykład, następujące ifthen stwierdzenia testują, że oba warunki są prawdziwe:


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

Operator binarny or zwraca jeden z dwóch argumentów.Jeśli pierwszy argument oceni się do true, to zwraca pierwszy argument.W przeciwnym razie zwraca drugi argument.


local y = x or 1
print(y) -- 1, ponieważ x nie istnieje i jest zatem nulowe
local d = false
local e = d or 1
print(e) -- 1, ponieważ d jest fałszywy
print(4 or 5) -- 4
print(nil or 12) -- 12
print(false or 12) -- 12
print(false or true) -- prawda
print(false or false) -- fałsz
print(true or false) -- prawda
print(true or true) -- true

Możesz użyć or do wykonywania złożonych testów logicznych w strukturach kontroli.Na przykład następujące oświadczenie if - then testuje, czy dwie warunki są prawdą lub czy trzeci warunek jest prawdą:


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

nie

Operator jednoznaczny not zwraca przeciwną wartość binarną argumentu.Jeśli argument jest false lub nil, to zwraca true.W przeciwnym razie zwraca false .


print(not true) -- fałsz
print(not false) -- prawda
print(not nil) -- prawda
print(not "text") -- fałsz
print(not 0) -- false

Możesz użyć operatora not, aby uruchomić warunkowy lub pętelę, jeśli zmienna jest false lub nil.


local nilVariable -- Zmienna jest deklarowana, ale nie ma wartości, więc jest nil
local falseVariable = false -- Zmienna jest deklarowana z wartością fałszu
if not nilVariable then
print(nilVariable) -- Wyświetla "nil", ponieważ nil nie jest prawdziwy
end
if not falseVariable then
print(falseVariable) -- Wyświetla "false", ponieważ fałsz nie jest prawdą
end

Możesz również użyć operatora not do testowania przeciwieństwa całego wielokrotnego oświadczenia warunkowego.W następnym przykładzie kodu, testy warunkowe if - then, które nie są prawdą, że trzy są większe od czterech, ani nie są prawdą, że pięć jest większe od czterech.


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.

Relacyjny

Operatory relacyjne porównują dwa parametry i zwracają boolean : true lub false .

OperatorOpisPrzykładPowiązany metametodą
==Równy z3 == 5false__eq
~=Nie równa się3 ~= 5true
>Więcej niż3 > 5false
<Mniej niż3 < 5true__lt
>=Większy niż lub równy3 >= 5false
<=Mniej niż lub równy3 <= 5true__le

Arytmetyka

Luau wspiera zwykłe operatory binarne wraz z wykładnikiem, modułem i negacją jednoznaczną.

OperatorOpisPrzykładPowiązany metametodą
+Dodanie1 + 1 = 2__add
-Odejmowanie1 - 1 = 0__sub
*Mnożenie5 * 5 = 25__mul
/Dzielenie10 / 5 = 2__div
//Podział piętra

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

__idiv
^Wykładnianie2 ^ 4 = 16__pow
%Moduł13 % 7 = 6__mod
-Negacja jednoznaczna-2 = 0 - 2__unm

Przydział związku

Możesz używać operatorów przypisania związanych, aby ustawić zmienną równą wynikowi operacji, w której pierwszy parametr jest obecną wartością zmiennej.

Operacja w przypisaniu związku występuje raz.Na przykład, jeśli wyrażenie generuje losowy indeks w tabeli, Luau używa tego samego indeksu zarówno dla operacji, jak i przypisania.

W następujących przykładach załóż local x = 3.

OperatorOperacjaPrzykładNowa wartość x
+=Dodaniex += 25
-=Odejmowaniex -= 21
*=Mnożeniex *= 26
/=Dzieleniex /= 21.5
//=Podział piętrax //= 21
%=Modułx %= 21
^=Wykładnianiex ^= 29
..=Konkatenacjax ..= " World!" "3 World!"

Różne

Operatorzy różne obejmują łączenie i długość .

OperatorOpisPrzykładPowiązany metametodą
..Łączy dwie strunyprint("Hello " .. "World!")__concat
#Długość tabeliJeśli tableVar = {1, 2, 3} , to #tableVar == 3 .__len