Operasi

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Seorang operator adalah simbol untuk melakukan operasi atau evaluasi kondisional.

Logis

Operator logis mengembalikan nilai tergantung pada nilai boolean dari argumen yang diberikan.Jika argumen tidak false atau nil , maka operator mengevaluasinya sebagai true .Tidak seperti banyak bahasa lain, Luau menganggap kedua nol dan string kosong sebagai true .Tabel berikut menyimpulkan bagaimana operator logis berperilaku dalam kondisi kondicional.

PengoperatorDeskripsi
andMengevaluasi sebagai true hanya jika kedua kondisi benar
orMengevaluasi sebagai true jika kondisi salah satu benar
notMengevaluasi sebagai kebalikan dari kondisi

dan

Operator biner and kembali salah satu dari dua argumen.Jika argumen pertama dievaluasi menjadi true , maka ia akan mengembalikan argumen kedua.Jika tidak, ia mengembalikan argumen pertama.


print(4 and 5) -- 5
print(nil and 12) -- tidak ada
print(false and 12) -- salah
print(false and true) -- salah
print(false and false) -- salah
print(true and false) -- salah
print(true and true) -- true

Anda dapat menggunakan and untuk menguji banyak kondisi dalam struktur kontrol seperti if pernyataan dan while loop .Sebagai contoh, berikut adalah tes pernyataan if - then yang menunjukkan bahwa dua kondisi sama-sama benar:


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 biner or kembali salah satu dari dua argumen.Jika argumen pertama dievaluasi menjadi true , maka ia akan mengembalikan argumen pertama.Jika tidak, ia mengembalikan argumen kedua.


local y = x or 1
print(y) -- 1 karena x tidak ada dan karena itu nol
local d = false
local e = d or 1
print(e) -- 1 karena d adalah false
print(4 or 5) -- 4
print(nil or 12) -- 12
print(false or 12) -- 12
print(false or true) -- benar
print(false or false) -- salah
print(true or false) -- benar
print(true or true) -- true

Anda dapat menggunakan or untuk melakukan tes logis kompleks di struktur kontrol.Sebagai contoh, pernyataan berikut if - thenmemeriksa apakah dua kondisi benar atau kondisi ketiga benar:


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

tidak

Operator unary not kembali nilai boolean yang berlawanan dari argumen.Jika argumennya adalah false atau nil , maka ia akan mengembalikan true .Jika tidak, ia kembalikan false .


print(not true) -- salah
print(not false) -- benar
print(not nil) -- benar
print(not "text") -- salah
print(not 0) -- false

Anda dapat menggunakan operator not untuk memicu kondisi atau loop jika variabel adalah false atau nil .


local nilVariable -- Variabel dideklarasikan tetapi tidak memiliki nilai, jadi ini nol
local falseVariable = false -- Variabel dideklarasikan dengan nilai false
if not nilVariable then
print(nilVariable) -- Outputs "nil" karena nil tidak benar
end
if not falseVariable then
print(falseVariable) -- Output "false" karena false tidak benar
end

Anda juga dapat menggunakan operator not untuk menguji kebalikan dari seluruh pernyataan multi-kondisi.Dalam contoh kode berikut, tes kondisional if - then yang tidak benar bahwa tiga lebih besar dari empat atau tidak benar bahwa lima lebih besar dari empat.


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.

Relasi

Operator relasional membandingkan dua parameter dan mengembalikan boolean : : true atau false .

PengoperatorDeskripsiContohMetode metametode terkait
==Sama dengan3 == 5false__eq
~=Tidak sama dengan3 ~= 5true
>Lebih besar dari3 > 5false
<Kurang dari3 < 5true__lt
>=Lebih besar atau sama dengan3 >= 5false
<=Kurang dari atau sama dengan3 <= 5true__le

Aritmatika

Luau mendukung operator biner biasa bersama dengan eksponensi, modus, dan penyangkalan tunggal.

PengoperatorDeskripsiContohMetode metametode terkait
+Tambahan1 + 1 = 2__add
-Pengurangan1 - 1 = 0__sub
*Penggandaan5 * 5 = 25__mul
/Pembagian10 / 5 = 2__div
//Pembagian Lantai

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

__idiv
^Eksponensialasi2 ^ 4 = 16__pow
%Modul13 % 7 = 6__mod
-Penyangkalan unary-2 = 0 - 2__unm

Asignasi kompleks

Anda dapat menggunakan operator penugasan kompleks untuk mengatur variabel yang sama dengan hasil operasi di mana parameter pertama adalah nilai variabel saat ini.

Operasi dalam penugasan kompleks terjadi sekali.Sebagai contoh, jika ekspresi menghasilkan indeks acak di tabel, Luau menggunakan indeks yang sama untuk kedua operasi dan penugasan.

Dalam contoh berikut, anggap local x = 3 .

PengoperatorOperasiContohNilai Baru dari x
+=Tambahanx += 25
-=Penguranganx -= 21
*=Penggandaanx *= 26
/=Pembagianx /= 21.5
//=Pembagian Lantaix //= 21
%=Modulx %= 21
^=Eksponensialasix ^= 29
..=Konjungsix ..= " World!" "3 World!"

Berbagai

Operator lain-lain termasuk konjungsi dan panjang .

PengoperatorDeskripsiContohMetode metametode terkait
..Menggabungkan dua stringprint("Hello " .. "World!")__concat
#Panjang tabelJika tableVar = {1, 2, 3} , maka #tableVar == 3 .__len