Menu
CoddyTech

Valutazione short-circuit

Fa parte della sezione Fondamenti del percorso Lua di Coddy. Lezione 23 di 90.

Quando Lua valuta gli operatori and e or, applica una regola chiamata valutazione in cortocircuito. Ciò significa che Lua interrompe la valutazione non appena conosce il risultato finale, saltando potenzialmente intere parti dell'espressione.

Per l'operatore and, se la prima condizione è false, Lua sa immediatamente che l'intera espressione sarà false senza controllare la seconda condizione:

playerAlive = false
hasWeapon = true

canFight = playerAlive and hasWeapon
-- Lua controlla solo playerAlive (false) e non valuta mai hasWeapon

Analogamente, per l'operatore or, se la prima condizione è true, Lua sa che il risultato sarà true e salta la seconda condizione:

hasKey = true
hasPassword = false

canEnter = hasKey or hasPassword
-- Lua controlla solo hasKey (true) e non valuta mai hasPassword

La valutazione con cortocircuito non serve solo a risparmiare lavoro: determina quale codice viene eseguito. In questo caso, il secondo controllo è sicuro solo perché Lua lo salta quando lives è nil:

lives = nil  -- nessun valore per ora

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

Senza la valutazione con cortocircuito, lives > 0 interromperebbe il programma con un errore, perché nil non può essere confrontato con un numero. Lo userai spesso: controlla che un valore esista prima di usarlo.

Provalo tu

Questa lezione non include una sfida di codice.

quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Compilatore Lua online