Évaluation court-circuit
Fait partie de la section Fundamentals du Journey Lua de Coddy — leçon 23 sur 90.
Les opérateurs and et or utilisent une optimisation astucieuse appelée évaluation court-circuit. Cela signifie que Lua arrête l'évaluation dès qu'il connaît le résultat final, ignorant potentiellement des parties de l'expression entièrement.
Pour l'opérateur and, si la première condition est false, Lua sait immédiatement que l'expression entière sera false sans vérifier la deuxième condition :
playerAlive = false
hasWeapon = true
canFight = playerAlive and hasWeapon
-- Lua vérifie seulement playerAlive (false), n'évalue jamais hasWeaponDe même, pour l'opérateur or, si la première condition est true, Lua sait que le résultat sera true et ignore la deuxième condition :
hasKey = true
hasPassword = false
canEnter = hasKey or hasPassword
-- Lua vérifie uniquement hasKey (true), n'évalue jamais hasPasswordAide-mémoire
Lua utilise l'évaluation court-circuit pour les opérateurs and et or, arrêtant l'évaluation dès que le résultat final est connu.
Pour l'opérateur and : si la première condition est false, la seconde condition n'est jamais évaluée :
playerAlive = false
hasWeapon = true
canFight = playerAlive and hasWeapon
-- Vérifie uniquement playerAlive (false), ignore hasWeaponPour l'opérateur or : si la première condition est true, la seconde condition n'est jamais évaluée :
hasKey = true
hasPassword = false
canEnter = hasKey or hasPassword
-- Vérifie uniquement hasKey (true), ignore hasPasswordEssayez vous-même
Cette leçon ne comprend pas de défi de code.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fundamentals
4Opérateurs 2 : Relationnels et Logique
Opérateurs d'égalitéOpérateurs relationnelsL'opérateur 'and'L'opérateur 'or'L'opérateur 'not'Évaluation court-circuitValeurs Truthy et FalsyRécapitulatif - Logique simple7Logique conditionnelle de base
L'instruction if-thenL'instruction if-then-elseL'instruction elseifRécapitulatif - Le coffre au trésor10Tables Partie 1 : Style Liste
Qu'est-ce qu'une Table ?Créer une TableAccéder aux éléments par indexModifier des éléments par indexL'opérateur de longueur '#'table.insert()table.remove()Récapitulatif - Gérer les membres du groupe13Projet : Boutique de potions simple
Configuration du projetAjouter une potion2Variables et types de données
Qu'est-ce qu'une variable ?Les nombresLes chaînes de caractèresLes booléensLa valeur 'nil'La fonction type()Conventions de nommageRécapitulatif - Profil de personnage5Affichage de base
Afficher des littérauxAfficher des variablesAfficher plusieurs valeursCombiner des chaînes et des variablesLa fonction tostring()EntréeLe CastRécapitulatif - Rapport d'étatRécapitulatif - Jusqu'à 1208Bases de la manipulation de chaînes
string.len()string.upper et string.lowerstring.sub()string.rep()string.find()Récapitulatif - Formater le nom d'utilisateur3Opérateurs 1 Arithmétique & Conc.
Opérateurs arithmétiquesOpérateur moduloOpérateur d'exponentiationConcaténation de chaînesPriorité des opérateursRécapitulatif - Calculs simples6Projet : Affichage des stats du personnage
Message de bienvenueDéclarer les statistiques du personnage9Bases des fonctions
Déclarer une fonctionAppeler une fonctionFonctions avec paramètresFonctions avec plusieurs paramètresL'instruction 'return'Récapitulatif - Calculateur d'aire