Sebuah operator adalah simbol untuk melakukan operasi atau penilaian kondisional.
Logika
Operator logik kembalikan nilai tergantung pada nilai booleh dari argument yang diberikan. Jika argument bukan false atau nil , maka operator mengevaluasi itu sebagai true . Berbeda dengan banyak bahasa lain, Luau menganggap kedua nol dan string kosong sebagai
Operator | Deskripsi |
---|---|
dan | Mengevaluasi sebagai benar hanya jika kedua kondisi benar |
atau | Mengevaluasi sebagai benar jika kondisi benar |
bukan | Mengevaluasi sebagai kebalikan dari kondisi |
dan
Operator biner and mengembalikan salah satu dari dua argumen. Jika argumen pertama diulas ke true, maka mengembalikan argumen kedua. Jika tidak, mengembalikan argumen pertama.
print(4 and 5) -- 5print(nil and 12) -- nolprint(false and 12) -- benarprint(false and true) -- benarprint(false and false) -- benarprint(true and false) -- benarprint(true and true) -- true
Anda dapat menggunakan and untuk menguji beberapa kondisi di struktur kontrol seperti if pernyataan dan 3> 4> while4> . Misalnya, berikut 7> if7> — 0> then0> pernyataan
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
atau
Operator biner or mengembalikan salah satu dari dua argumen. Jika argumen pertama diulas ke true, maka itu mengembalikan argumen pertama. Jika tidak, itu mengembalikan argumen kedua.
local y = x or 1print(y) -- 1 karena x tidak ada dan karena itu nollocal d = falselocal e = d or 1print(e) -- 1 karena d adalah falseprint(4 or 5) -- 4print(nil or 12) -- 12print(false or 12) -- 12print(false or true) -- benarprint(false or false) -- benarprint(true or false) -- benarprint(true or true) -- true
Anda dapat menggunakan or untuk melakukan tes logika yang kompleks di struktur kontrol. Misalnya, pernyataan if — 2>然2> menguji apakah dua kondisi benar 5>atau5> kondisi ketiga benar:
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
tidak
Operator unary not mengembalikan nilai booleh yang berlawanan dari argument. Jika argument adalah false atau nil, maka itu mengembalikan 1> tru1> . Jika tidak, itu mengembalikan 4> false4> .
print(not true) -- benarprint(not false) -- benarprint(not nil) -- benarprint(not "text") -- benarprint(not 0) -- false
Anda dapat menggunakan operator not untuk menyebabkan kondisi atau loop jika variabel adalah false atau nil.
local nilVariable -- Variable diklarifikasi tapi tidak memiliki nilai, jadi itu nollocal falseVariable = false -- Variable diklar dengan nilai falseif not nilVariable thenprint(nilVariable) -- Output "nil" karena nil tidak benarendif not falseVariable thenprint(falseVariable) -- Output "false" karena false tidak benarend
Anda juga dapat menggunakan operator not untuk menguji untuk kebalikan dari pernyataan multi-condition yang lengkap. Dalam contoh kode berikut, kondisi if — then kondisi kondisional yang tidak benar bahwa tiga lebih besar dari empat atau tidak benar bahwa lima lebih besar dari empat.
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.
Relasional
Operator relasi membandingkan dua parameter dan mengembalikan boolean : true atau false .
Operator | Deskripsi | Contoh | Metode metametode yang terkait |
---|---|---|---|
==) | Sama dengan | 3 == 5 → salah | __eq |
!” | Tidak sama dengan | 3 5 → benar | |
> | Lebih besar dari | 3 > 5 → | |
< | Kurang dari | 3 < 5 → benar | __lt) |
>=) | Lebih besar dari atau sama dengan | 3 >= 5 → salah | |
Kurang dari atau sama dengan | 3 <= 5 → benar | __le |
Aritmatika
Lua mendukung operator biner yang biasa bersama dengan eksponensi, modul, dan negasi tunggal.
Operator | Deskripsi | Contoh | Metode metametode yang terkait |
---|---|---|---|
+ | Tambahan | 1 + 1 = 2 | __tambahkan |
- | Penghapusan | 1 - 1 = 0 | __sub |
* | Pengganda | 5 * 5 = 25. | __mul |
/ | Pembagian | 10 / 5 = 2 | __div |
/// | Pembagian Lantai | 10 // 4 = 2-10 // 4 = -3 | __idiv |
^ | Eksponensi | 2^4=16 | __pow |
% | Modul | 13% 7 = 6 | __mod |
- | Penolakan Unary | -2 = 0 - 2 | __unm |
Penggunaan Kompensasi
Anda dapat menggunakan operator pengganda penggunaan untuk menetapkan variabel yang sama dengan hasil operasi di mana parameter pertama adalah nilai variabel.
Operasi dalam konsentrasi pengoperasian terjadi sekali. Misalnya, jika ekspresi menghasilkan indeks acak di tabel, Luau menggunakan indeks yang sama untuk operasi dan konsentrasi.
Dalam contoh berikut, katakanlah local x = 3.
Operator | Operasi | Contoh | Nilai Baru dari x |
---|---|---|---|
(+) | Tambahan | x += 2 | 5 |
==== | Penghapusan | x -= 2 | 1. |
* | Pengganda | x*2 | 6 |
/= | Pembagian | x /= 2 | 1.5 |
//= | Pembagian Lantai | x //= 2 | 1. |
%=: | Modul | x%= 2 | 1. |
^=) | Eksponensi | x ^= 2 | 9. |
..= | Kontrasenasi | x ..= "Dunia!" | Dunia 3!" |
Terbaru
Pengoperator lainnya termasuk konvensi dan panjangnya.
Operator | Deskripsi | Contoh | Metode metametode yang terkait |
---|---|---|---|
.. | Menggabungkan dua string | cetak ("Halo".. "Dunia!"). | __concat |
# | Panjang tabel | Jika tabelVar = 1, 2, 3 , maka #tabelVar == 3 . | __len. |