Menu
CoddyTech

Kısa Devre Değerlendirmesi

Coddy'nin Lua Journey'sinin Temeller bölümünün bir parçası. Ders 23 / 90.

Lua, and ve or işleçlerini değerlendirirken kısa devre değerlendirmesi adı verilen bir kural kullanır. Bu, Lua’nın nihai sonucu öğrenir öğrenmez değerlendirmeyi durdurduğu ve ifadenin bazı bölümlerini tamamen atlayabileceği anlamına gelir.

and işleci için, ilk koşul false ise Lua, ikinci koşulu kontrol etmeden ifadenin tamamının false olacağını hemen bilir:

playerAlive = false
hasWeapon = true

canFight = playerAlive and hasWeapon
-- Lua yalnızca playerAlive değerini (false) kontrol eder, hasWeapon değerini asla değerlendirmez

Benzer şekilde, or operatöründe ilk koşul true ise Lua sonucun true olacağını bilir ve ikinci koşulu atlar:

hasKey = true
hasPassword = false

canEnter = hasKey or hasPassword
-- Lua yalnızca hasKey değişkenini kontrol eder (true); hasPassword değişkenini asla değerlendirmez

Kısa devre değerlendirmesi yalnızca iş yükünü azaltmaz: hangi kodun çalışacağını da belirler. Burada ikinci kontrol yalnızca Lua, lives değeri nil olduğunda bu kontrolü atladığı için güvenlidir:

lives = nil  -- henüz bir değer yok

canPlay = lives ~= nil and lives > 0
print(canPlay)  -- false

Kısa devre değerlendirmesi olmasaydı, lives > 0 programı bir hatayla durdururdu; çünkü nil, bir sayıyla karşılaştırılamaz. Bunu sık sık kullanacaksın: bir değeri kullanmadan önce mevcut olup olmadığını kontrol et.

Kendin dene

Bu ders bir kod alıştırması içermiyor.

quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temeller bölümündeki tüm dersler

Kendi başına pratik yap: Online Lua derleyicisi