Portée et blocs
Fait partie de la section Notions fondamentales du Journey Lua de Coddy. Leçon 86 sur 90.
En Lua, vous pouvez créer de nouvelles portées n’importe où dans votre code à l’aide de blocs do...end. Ces blocs vous permettent de contrôler précisément où vos variables locales peuvent être accessibles, ce qui vous donne un contrôle précis sur la portée des variables.
Voici comment créer une nouvelle portée avec un bloc do...end :
local outerVar = "I'm outside"
do
local innerVar = "I'm inside"
print(outerVar) -- Cela fonctionne
print(innerVar) -- Cela fonctionne aussi
end
print(outerVar) -- Cela fonctionne
print(innerVar) -- Affiche nil : innerVar n’existe qu’à l’intérieur du blocL’aspect puissant de la portée est que tu peux avoir des variables locales portant le même nom dans différents blocs, et qu’elles restent complètement distinctes :
local name = "Alice"
do
local name = "Bob" -- Variable différente !
print(name) -- Affiche "Bob"
end
print(name) -- Affiche "Alice"Chaque bloc do...end crée son propre environnement isolé pour les variables locales. Les variables déclarées à l’intérieur d’un bloc ne peuvent pas sortir de sa portée, tandis que les variables des portées externes peuvent être utilisées depuis les blocs internes.
Défi
FacileCréez des blocs do...end imbriqués pour montrer que les variables locales portant le même nom restent complètement distinctes dans des portées différentes.
Tout d’abord, créez une variable locale nommée playerLevel avec la valeur 10 dans la portée externe et affichez-la.
Ensuite, créez un bloc do...end et, à l’intérieur :
- Déclarez une nouvelle variable locale également nommée
playerLevelavec la valeur25 - Affichez cette variable interne
playerLevel
Après la fin du bloc interne, affichez de nouveau la variable externe playerLevel pour montrer qu’elle est restée inchangée.
Cela montre que les variables locales portant des noms identiques dans des portées différentes sont complètement indépendantes : la variable interne n’affecte pas la variable externe.
Essayez vous-même
-- TODO: Écrivez votre code iciCette 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
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'utilisateur11Tables 2 : Style dictionnaire
Paires clé-valeurCréer des tables de style dictionnaireAccès - Notation par crochetsAccès avec la notation par pointAjouter et modifier des pairesSupprimer des paires avec nilRécapitulatif - Propriétés des éléments14Portée des variables
Variables globalesVariables localesPourquoi utiliser des variables locales ?Portée et blocsRécapitulatif - Énigme de portée3Opé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'aireEntraînez-vous par vous-même : Compilateur Lua en ligne