Evaluasi Hubung Singkat
Termasuk bagian Dasar-Dasar dalam perjalanan Lua di Coddy. Pelajaran 23 dari 90.
Saat Lua mengevaluasi operator and dan or, Lua menggunakan aturan yang disebut evaluasi hubung singkat. Artinya, Lua berhenti mengevaluasi begitu mengetahui hasil akhirnya, sehingga beberapa bagian ekspresi mungkin dilewati sepenuhnya.
Untuk operator and, jika kondisi pertama adalah false, Lua langsung tahu bahwa seluruh ekspresi akan bernilai false tanpa memeriksa kondisi kedua:
playerAlive = false
hasWeapon = true
canFight = playerAlive and hasWeapon
-- Lua hanya memeriksa playerAlive (false), tidak pernah mengevaluasi hasWeaponDemikian pula, untuk operator or, jika kondisi pertama adalah true, Lua tahu hasilnya akan true dan melewati kondisi kedua:
hasKey = true
hasPassword = false
canEnter = hasKey or hasPassword
-- Lua hanya memeriksa hasKey (true) dan tidak pernah mengevaluasi hasPasswordEvaluasi short-circuiting tidak hanya menghemat pekerjaan: evaluasi ini menentukan kode mana yang dijalankan. Di sini, pemeriksaan kedua aman hanya karena Lua melewatinya saat lives bernilai nil:
lives = nil -- belum ada nilai
canPlay = lives ~= nil and lives > 0
print(canPlay) -- falseTanpa evaluasi short-circuiting, lives > 0 akan menghentikan program dengan error karena nil tidak bisa dibandingkan dengan angka. Kamu akan sering menggunakan ini: periksa apakah suatu nilai ada sebelum menggunakannya.
Coba sendiri
Pelajaran ini tidak memiliki tantangan kode.
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar
4Operator 2: Relasional dan Logika
Operator KesetaraanOperator RelasionalOperator 'and'Operator 'or'Operator 'not'Evaluasi Hubung SingkatNilai Truthy dan FalsyRingkasan: Logika Sederhana7Logika Percabangan Dasar
Pernyataan if-thenPernyataan if-then-elsePernyataan elseifUlasan: Peti Harta Karun10Table Bagian 1: Gaya list
Apa Itu Table?Membuat TableMengakses Elemen Berdasarkan IndeksMengubah Elemen Berdasarkan IndeksOperator Panjang '#'table.insert()table.remove()Ulasan: Mengelola Anggota Pesta13Proyek: Toko Ramuan Sederhana
Penyiapan ProyekMenambahkan Ramuan2Variabel dan Tipe Data
Apa Itu Variabel?AngkastringBooleanNilai 'nil'Fungsi type()Konvensi PenamaanRangkuman: Profil Karakter5Output Dasar
Mencetak LiteralMencetak VariabelMencetak Beberapa NilaiMenggabungkan string dan VariabelFungsi tostring()InputKonversi TipeRangkuman: Laporan StatusRangkuman: Hingga 1208Dasar Manipulasi string
string.len()string.upper & string.lowerstring.sub()string.rep()string.find()Ulasan, Format Nama Pengguna3Operator 1: Aritmetika & Penggabungan
Operator AritmetikaOperator ModuloOperator PemangkatanPenggabungan stringPrioritas OperatorRangkuman: Perhitungan Sederhana6Proyek: Menampilkan Statistik Karakter
Pesan Selamat DatangDeklarasikan Statistik Karakter9Dasar-Dasar Fungsi
Mendeklarasikan FungsiMemanggil FungsiFungsi dengan ParameterFungsi dengan Beberapa ParameterPernyataan 'return'Ulasan: Kalkulator LuasLatihan sendiri: Compiler Lua online