Evaluación de Cortocircuito
Parte de la sección Fundamentals del Journey de Lua de Coddy — lección 23 de 90.
Los operadores and y or, utiliza una optimización inteligente llamada evaluación de cortocircuito. Esto significa que Lua deja de evaluar tan pronto como conoce el resultado final, omitiendo potencialmente partes de la expresión por completo.
Para el operador and, si la primera condición es false, Lua sabe inmediatamente que la expresión completa 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 hasPasswordHoja de referencia
Lua utiliza la evaluación de cortocircuito para los operadores and y or, deteniendo la evaluación tan pronto como se conoce el resultado final.
Para el operador and: si la primera condición es false, la segunda condición nunca se evalúa:
playerAlive = false
hasWeapon = true
canFight = playerAlive and hasWeapon
-- Solo comprueba playerAlive (false), omite hasWeaponPara el operador or: si la primera condición es true, la segunda condición nunca se evalúa:
hasKey = true
hasPassword = false
canEnter = hasKey or hasPassword
-- Solo comprueba hasKey (true), omite hasPasswordPrué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 Fundamentals
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 área