Menu
CoddyTech

Avaliação de Curto-Circuito

Parte da seção Fundamentos do Journey de Lua da Coddy. Lição 23 de 90.

Quando Lua avalia os operadores and e or, ela usa uma regra chamada avaliação de curto-circuito. Isso significa que Lua para de avaliar assim que sabe qual é o resultado final, podendo ignorar completamente partes da expressão.

Para o operador and, se a primeira condição for false, Lua sabe imediatamente que toda a expressão será false, sem verificar a segunda condição:

playerAlive = false
hasWeapon = true

canFight = playerAlive and hasWeapon
-- Lua verifica apenas playerAlive (false) e nunca avalia hasWeapon

Da mesma forma, para o operador or, se a primeira condição for true, Lua sabe que o resultado será true e ignora a segunda condição:

hasKey = true
hasPassword = false

canEnter = hasKey or hasPassword
-- Lua só verifica hasKey (true), nunca avalia hasPassword

A avaliação de curto-circuito não serve apenas para economizar trabalho: ela decide qual código é executado. Aqui, a segunda verificação só é segura porque Lua a ignora quando lives é nil:

lives = nil  -- ainda sem valor

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

Sem a avaliação de curto-circuito, lives > 0 interromperia o programa com um erro, porque nil não pode ser comparado com um número. Você vai usar isso com frequência: verifique se um valor existe antes de usá-lo.

Experimente você mesmo

Esta lição não inclui um desafio de código.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos

Pratique por conta própria: Compilador de Lua online