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.

operatorzy to symbol dla wykonania operacji lub oceny kondycyjnej.

Logiczne

Logiczni operatorzy zwracają wartości w zależności od wartościBooleanowych danych argumentów. Jeśli argument nie jest false lub nil, to operator ocenia go jako true . W przeciwieństwie do wielu innych języków, Luau rozważa zarówno zero, jak i pustą strungę jako 2>truie2>. Tabele

OperatorOpisy
iOcenia się jako prawdziwy tylko wtedy, gdy obie warunki są prawdziwe
lubOcenia się jako prawdziwy jeśli któraś z tych warunków jest prawdziwa
nieOcenia się jako przeciwieństwo warunku

i

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


print(4 and 5) -- 5
print(nil and 12) -- nie ma
print(false and 12) -- fałszywy
print(false and true) -- fałszywy
print(false and false) -- fałszywy
print(true and false) -- fałszywy
print(true and true) -- true

Możesz użyć and do testowania wielu warunków w strukturach kontrolnych takich jak if stwierdzenia i 2> 4> while4> pętli4>. Na przykład następujące 7> if7> — 0> then


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

lub

Operator binarny or zwraca jeden z dwóch argumentów. Jeśli pierwszy argument ocenia 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 zero
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) -- prawdziwy
print(false or false) -- fałszywy
print(true or false) -- prawdziwy
print(true or true) -- true

Możesz użyć or , aby wykonać złożone testy logiczne w strukturach kontrolnych. Na przykład następujące if — 2>then2> stwierdzenia testują, czy dwa warunki są prawdziwe 5> lub5> warunek trzeci jest prawdziwy:


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

Unaryczny operator not zwraca przeciwne wartości zmienne argumentu. Jeśli argument jest false lub nil, zwraca 1> 4> true4> . W przeciwnym razie zwraca 7> 4> false7>.


print(not true) -- fałszywy
print(not false) -- prawdziwy
print(not nil) -- prawdziwy
print(not "text") -- fałszywy
print(not 0) -- false

Możesz użyć operatora not, aby wywołać kondycyjny lub pętli, jeśli zmienne są false lub nil .


local nilVariable -- Zmienne jest deklarowane, ale nie ma wartości, więc jest nil
local falseVariable = false -- Zmienne jest deklarowane z wartością false
if not nilVariable then
print(nilVariable) -- Wyświetla „nil”, ponieważ nil nie jest prawdą
end
if not falseVariable then
print(falseVariable) -- Wyświetla „ fałszywy”, ponieważ fałszywy nie jest prawdą
end

Możesz również użyć operatora not, aby testować przeciwieństwo całego warunkowego oświadczenia. W następnym przykładzie kodu użyto ifthen kondycyjne testy, że nie jest prawdą, że trzy jest większe niż cztery lub że nie jest prawdą, że pięć jest większe niż cztery.


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 metametoda
==Równać3 == 5fałszywy__eq
!”Nie równa się3 5 → prawdziwy
>:Większa niż3 > 5fałszywy
<:Mniej niż3 < 5prawdziwy__lt
>=Większy niż lub równy3 >= 5fałszywy
Mniejszy lub równy3 <= 5prawdziwy__le)

Arytmetyka

Lua wspiera zwykłe operatory binarne wraz z ekspresją, modułem i unaryczną negacją.

OperatorOpisPrzykładPowiązany metametoda
+Dodanie1 + 1 = 2__dodaj
-:Odejście1 - 1 = 0__sub:
*Mnożenie5 * 5 = 25godzin__mul
/:Dywizja10 / 5 = 2__div
//)Dywizja Podłogowa10 // 4 = 2-10 // 4 = -3__idiv
^)Eksponowanie2 ^ 4 = 16__pow
%Moduł13% 7 = 6__mod
-:Unaryczna negacja-2 = 0 - 2__unm

Zakładanie kompozycji

Możesz użyć operatorów zmiany wartości, aby ustawić zmienne równe wynikowi operacji, w której pierwszy parametr to obecna wartość zmiennej.

Operacja w przydziale kompozycji następuje raz. Na przykład, jeśli wyrażenie generuje losowy indeks w tabeli, Luau używa tego samego indeksu dla operacji i przydziału.

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

OperatorOperacjaPrzykładNowa wartość x
=Dodaniex += 25)
.Odejściex=- 21:
*Mnożeniex*26
/=Dywizjax /= 2 1.5.1 »1
//=:Dywizja Podłogowax //= 21:
%=)Modułx %= 21:
^=:Eksponowaniex^= 29.0
..=Połączeniex..= „Świat!”„3 świat!”

Różne

Niektóre operatory obejmują łączenie i długość.

OperatorOpisPrzykładPowiązany metametoda
..Połącza dwa ciągidrukuj("Hello " .. "World!"__concat
#Długość stolikaJeśli tableVar = 1, 2, 3 , to #tableVar == 3 .__len)