Menu
CoddyTech

Évaluation court-circuit

Fait partie de la section Notions fondamentales du Journey Lua de Coddy. Leçon 23 sur 90.

Lorsque Lua évalue les opérateurs and et or, il applique une règle appelée évaluation en court-circuit. Cela signifie que Lua arrête l’évaluation dès qu’il connaît le résultat final, en omettant potentiellement certaines parties de l’expression.

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 uniquement playerAlive (false) et n’évalue jamais hasWeapon

De 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) et n’évalue jamais hasPassword

L’évaluation à court-circuit ne fait pas qu’économiser du travail : elle détermine quel code s’exécute. Ici, la deuxième vérification est sûre uniquement parce que Lua l’ignore lorsque lives vaut nil :

lives = nil  -- pas encore de valeur

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

Sans évaluation à court-circuit, lives > 0 interromprait le programme avec une erreur, car nil ne peut pas être comparé à un nombre. Tu utiliseras souvent cette technique : vérifie qu’une valeur existe avant de l’utiliser.

Essayez vous-même

Cette leçon ne comprend pas de défi de code.

quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Notions fondamentales

Entraînez-vous par vous-même : Compilateur Lua en ligne