Operatörler

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Bir operatörü bir işlem veya koşullu değerlendirme yapmak için bir semboldür.

Mantıksal

Mantık operatörler, verilen argümanların booleansal değerlerine bağlı olarak değerleri döndürür.Bir argüman false veya nil değilse, operatör bunu true olarak değerlendirir.Diğer birçok dilden farklı olarak, Luau hem sıfırı hem de boş dizeyi true olarak düşünür.Aşağıdaki tablo, mantık operatörlerin koşullarda nasıl davrandığını özetlemektedir.

OperatörAçıklamalar
andHer iki koşul da doğruysa true sadece değerlendirir
orHerhangi bir koşul doğruysa true değerlendirir if
notKoşulun tersi olarak değerlendirir

ve

Kodlanmış işletici and iki argümanlardan birini döndürür.İlk argüman true değerlendirilirse, ikinci argümanı geri verir.Aksi takdirde, ilk argümanı döndürür.


print(4 and 5) -- 5
print(nil and 12) -- sıfır
print(false and 12) -- sahte
print(false and true) -- sahte
print(false and false) -- sahte
print(true and false) -- sahte
print(true and true) -- true

kontrol yapılarında çok sayıda koşulu test etmek için ifadeleri ve döngüler gibi döngüler kullanabilirsiniz.Örneğin, aşağıdaki if - then ifadesi iki koşulun da doğru olduğunu test eder:


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

Kodlanmış işletici or iki argümanlardan birini döndürür.İlk argüman true değerlendirilirse, ilk argümanı geri verir.Aksi takdirde, ikinci argümanı döndürür.


local y = x or 1
print(y) -- 1 çünkü x yok ve bu nedenle sıfır
local d = false
local e = d or 1
print(e) -- 1 çünkü d yanlış
print(4 or 5) -- 4
print(nil or 12) -- 12
print(false or 12) -- 12
print(false or true) -- doğru
print(false or false) -- sahte
print(true or false) -- doğru
print(true or true) -- true

Kontrol yapılarında orkullanabilirsiniz .Örneğin, aşağıdaki - ifadesi, iki koşulun doğru olup olmadığını veya üçüncü bir koşulun doğru olup olmadığını test eder:


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

hayır

Tek turlu operatör not , argümanın ters mantık değerini döndürür.Eğer argüman false veya nil ise, sonuç true döndürür.Aksi takdirde, false döndürür.


print(not true) -- sahte
print(not false) -- doğru
print(not nil) -- doğru
print(not "text") -- sahte
print(not 0) -- false

Bir değişken not veya false veya nil ise bir koşul veya döngü tetiklemek için operatörünü kullanabilirsiniz.


local nilVariable -- Değişken ilan edildi ancak değeri yok, bu yüzden sıfır
local falseVariable = false -- Değişken false değeriyle ilan edilir
if not nilVariable then
print(nilVariable) -- Çıktı "sıfır" çünkü nil doğru değil
end
if not falseVariable then
print(falseVariable) -- Çıktı "yanlış" çünkü yanlış doğru değil
end

Ayrıca, tüm bir çok koşullu ifadenin zıttını test etmek için not operatörünü kullanabilirsiniz.Aşağıdaki kod örneğinde, if - then koşullu testler, üçün dörtten daha büyük olması doğru değil veya beşin dörtten daha büyük olması doğru değil.


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.

İlişkili

İlişkisel operatörler iki değeri karşılaştırır ve bir geri döndürür: veya .

OperatörAçıklamaÖrnekİlgili metodu yöntemi
==Eşit olarak3 == 5false__eq
~=Eşit değil3 ~= 5true
>Daha fazla than3 > 5false
<Daha azından3 < 5true__lt
>=Daha büyük veya eşit ol3 >= 5false
<=Daha az veya eşit veya3 <= 5true__le

Sayısal

Luau, eksponans, modüs ve ters negasyon ile birlikte olağan ikili operatörleri destekler.

OperatörAçıklamaÖrnekİlgili metodu yöntemi
+Ekleme1 + 1 = 2__add
-Keskinleme1 - 1 = 0__sub
*Çarpanlar5 * 5 = 25__mul
/Bölüm10 / 5 = 2__div
//Kat Bölümü

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

__idiv
^Uçbazlama2 ^ 4 = 16__pow
%Modül13 % 7 = 6__mod
-Tek negasyon-2 = 0 - 2__unm

Bileşik atama

Birinci değişkenin çıktısı bir işlemin sonucu olan bir değişken eşit olacak şekilde ayarlamak için bileşik atama operatörlerini kullanabilirsiniz, ilk değişken değişkenin mevcut değeri.

Bileşik atamada yapılan işlem bir kez gerçekleşir.Örneğin, bir ifade bir tabloda rastgele bir indeks oluşturursa, Luau hem işlem hem de atama için aynı indeksi kullanır.

Aşağıdaki örneklerde, varsayalım local x = 3 .

OperatörOperasyonÖrnekYeni Değer x
+=Eklemex += 25
-=Keskinlemex -= 21
*=Çarpanlarx *= 26
/=Bölümx /= 21.5
//=Zemin Bölümüx //= 21
%=Modülx %= 21
^=Uçbazlamax ^= 29
..=Katılımx ..= " World!" "3 World!"

Çeşitli

Çeşitli operatörler birleştirme ve uzunluk içerir.

OperatörAçıklamaÖrnekİlgili metodu yöntemi
..İki dizeyi birleştirirprint("Hello " .. "World!")__concat
#Tablonun uzunluğuEğer tableVar = {1, 2, 3} ise, #tableVar == 3 .__len