Menu
CoddyTech

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 hasWeapon

Demikian 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 hasPassword

Evaluasi 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)  -- false

Tanpa 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.

quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Compiler Lua online