Menu
Coddy logo textTech

Portée et blocs

Fait partie de la section Les fondamentaux 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 en utilisant des blocs do...end. Ces blocs vous permettent de contrôler exactement où vos variables locales sont accessibles, vous offrant un contrôle précis sur la portée des variables.

Voici comment vous pouvez 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)  -- Cela provoquerait une erreur !

L'aspect puissant de la portée est que vous pouvez avoir des variables locales avec le même nom dans différents blocs, et elles restent complètement séparées :

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 s'échapper vers la portée externe, tandis que les variables des portées externes sont accessibles depuis l'intérieur des blocs internes.

challenge icon

Défi

Facile

Créez des blocs do...end imbriqués pour démontrer comment les variables locales portant le même nom restent complètement séparées 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 de celui-ci :

  • Déclarez une nouvelle variable locale également nommée playerLevel avec la valeur 25
  • Affichez cette variable playerLevel interne

Une fois le bloc interne terminé, affichez à nouveau la variable playerLevel externe pour montrer qu'elle est restée inchangée.

Cela démontre que les variables locales ayant 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 Les fondamentaux