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ör | Açıklamalar |
---|---|
and | Her iki koşul da doğruysa true sadece değerlendirir |
or | Herhangi bir koşul doğruysa true değerlendirir if |
not | Koş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) -- 5print(nil and 12) -- sıfırprint(false and 12) -- sahteprint(false and true) -- sahteprint(false and false) -- sahteprint(true and false) -- sahteprint(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 = truelocal tomatoSauce = trueif pasta == true and tomatoSauce == true thenprint("We have spaghetti dinner")elseprint("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 1print(y) -- 1 çünkü x yok ve bu nedenle sıfırlocal d = falselocal e = d or 1print(e) -- 1 çünkü d yanlışprint(4 or 5) -- 4print(nil or 12) -- 12print(false or 12) -- 12print(false or true) -- doğruprint(false or false) -- sahteprint(true or false) -- doğruprint(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 = 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
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) -- sahteprint(not false) -- doğruprint(not nil) -- doğruprint(not "text") -- sahteprint(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ırlocal falseVariable = false -- Değişken false değeriyle ilan edilirif not nilVariable thenprint(nilVariable) -- Çıktı "sıfır" çünkü nil doğru değilendif not falseVariable thenprint(falseVariable) -- Çıktı "yanlış" çünkü yanlış doğru değilend
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 = 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.
İlişkili
İlişkisel operatörler iki değeri karşılaştırır ve bir geri döndürür: veya .
Operatör | Açıklama | Örnek | İlgili metodu yöntemi |
---|---|---|---|
== | Eşit olarak | 3 == 5 → false | __eq |
~= | Eşit değil | 3 ~= 5 → true | |
> | Daha fazla than | 3 > 5 → false | |
< | Daha azından | 3 < 5 → true | __lt |
>= | Daha büyük veya eşit ol | 3 >= 5 → false | |
<= | Daha az veya eşit veya | 3 <= 5 → true | __le |
Sayısal
Luau, eksponans, modüs ve ters negasyon ile birlikte olağan ikili operatörleri destekler.
Operatör | Açıklama | Örnek | İlgili metodu yöntemi |
---|---|---|---|
+ | Ekleme | 1 + 1 = 2 | __add |
- | Keskinleme | 1 - 1 = 0 | __sub |
* | Çarpanlar | 5 * 5 = 25 | __mul |
/ | Bölüm | 10 / 5 = 2 | __div |
// | Kat Bölümü | 10 // 4 = 2``-10 // 4 = -3 | __idiv |
^ | Uçbazlama | 2 ^ 4 = 16 | __pow |
% | Modül | 13 % 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ör | Operasyon | Örnek | Yeni Değer x |
---|---|---|---|
+= | Ekleme | x += 2 | 5 |
-= | Keskinleme | x -= 2 | 1 |
*= | Çarpanlar | x *= 2 | 6 |
/= | Bölüm | x /= 2 | 1.5 |
//= | Zemin Bölümü | x //= 2 | 1 |
%= | Modül | x %= 2 | 1 |
^= | Uçbazlama | x ^= 2 | 9 |
..= | Katılım | x ..= " World!" | "3 World!" |
Çeşitli
Çeşitli operatörler birleştirme ve uzunluk içerir.
Operatör | Açıklama | Örnek | İlgili metodu yöntemi |
---|---|---|---|
.. | İki dizeyi birleştirir | print("Hello " .. "World!") | __concat |
# | Tablonun uzunluğu | Eğer tableVar = {1, 2, 3} ise, #tableVar == 3 . | __len |