Menu
CoddyTech

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 bloc

L’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.

challenge icon

Défi

Facile

Cré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 playerLevel avec la valeur 25
  • 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 ici
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