Menu
CoddyTech

Evaluación de Cortocircuito

Parte de la sección Fundamentos del Journey de Lua de Coddy. Lección 23 de 90.

Cuando Lua evalúa los operadores and y or, utiliza una regla llamada evaluación de cortocircuito. Esto significa que Lua deja de evaluar en cuanto conoce el resultado final, lo que puede hacer que omita por completo algunas partes de la expresión.

Para el operador and, si la primera condición es false, Lua sabe inmediatamente que toda la expresión será false sin comprobar la segunda condición:

playerAlive = false
hasWeapon = true

canFight = playerAlive and hasWeapon
-- Lua solo comprueba playerAlive (false), nunca evalúa hasWeapon

De manera similar, para el operador or, si la primera condición es true, Lua sabe que el resultado será true y omite la segunda condición:

hasKey = true
hasPassword = false

canEnter = hasKey or hasPassword
-- Lua solo comprueba hasKey (true); nunca evalúa hasPassword

La evaluación de cortocircuito no solo ahorra trabajo: decide qué código se ejecuta. Aquí la segunda comprobación solo es segura porque Lua la omite cuando lives es nil:

lives = nil  -- todavía no tiene valor

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

Sin la evaluación de cortocircuito, lives > 0 detendría el programa con un error, porque nil no se puede comparar con un número. Usarás esto a menudo: comprueba que exista un valor antes de usarlo.

Pruébalo tú mismo

Esta lección no incluye un desafío de código.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos

Practica por tu cuenta: Compilador de Lua online