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 hasWeaponDe 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 hasPasswordLa 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) -- falseSin 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.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores 2 Relacionales y Lógicos
Operadores de IgualdadOperadores RelacionalesEl Operador 'and'El Operador 'or'El Operador 'not'Evaluación de CortocircuitoValores Truthy y FalsyResumen - Lógica Simple7Lógica condicional básica
La sentencia if-thenLa sentencia if-then-elseLa sentencia elseifResumen - Cofre del tesoro10Tablas Parte 1: Estilo de lista
¿Qué es una tabla?Crear una tablaAcceder a elementos por índiceModificar elementos por índiceEl operador de longitud '#'table.insert()table.remove()Resumen - Gestionar miembros del grupo13Proyecto: Tienda de pociones sencilla
Configuración del proyectoAñadir una poción2Variables y tipos de datos
¿Qué es una variable?NúmerosStringsBooleanosEl valor 'nil'La función type()Convenciones de nomenclaturaResumen - Perfil de personaje5Salida básica
Imprimir literalesImprimir variablesImprimir múltiples valoresCombinar cadenas y variablesLa función tostring()EntradaConversión de tipos (Cast)Resumen - Informe de estadoResumen - Hasta 1208Fundamentos de manipulación de strings
string.len()string.upper & string.lowerstring.sub()string.rep()string.find()Repaso - Formatear nombre de usuario3Operadores 1: Aritmética y Concatenación
Operadores aritméticosOperador de móduloOperador de exponenciaciónConcatenación de stringsPrecedencia de operadoresResumen: Cálculos sencillos6Proyecto: Mostrar estadísticas del personaje
Mensaje de bienvenidaDeclarar estadísticas del personaje9Fundamentos de las funciones
Declarar una funciónLlamar a una funciónFunciones con parámetrosFunciones con múltiples parámetrosLa sentencia 'return'Repaso - Calculadora de áreaPractica por tu cuenta: Compilador de Lua online