Menu
CoddyTech

Zakres i bloki

Część sekcji Podstawy ścieżki Lua w Coddy. Lekcja 86 z 90.

W Lua możesz tworzyć nowe zakresy w dowolnym miejscu kodu za pomocą bloków do...end. Bloki te pozwalają dokładnie kontrolować, gdzie można uzyskać dostęp do zmiennych lokalnych, dając precyzyjną kontrolę nad zakresem zmiennych.

Oto, jak możesz utworzyć nowy zakres widoczności za pomocą bloku do...end:

local outerVar = "I'm outside"

do
    local innerVar = "I'm inside"
    print(outerVar)  -- To działa
    print(innerVar)  -- To też działa
end

print(outerVar)  -- To działa
print(innerVar)  -- Wypisuje nil: innerVar istnieje tylko wewnątrz bloku

Potężną cechą zakresu jest to, że w różnych blokach możesz mieć zmienne lokalne o tej samej nazwie, a mimo to pozostają one całkowicie niezależne:

local name = "Alice"

do
    local name = "Bob"  -- Inna zmienna!
    print(name)  -- Wyświetla "Bob"
end

print(name)  -- Wyświetla "Alice"

Każdy blok do...end tworzy własne odizolowane środowisko dla zmiennych lokalnych. Zmienne zadeklarowane wewnątrz bloku nie mogą wydostać się do zewnętrznego zakresu, natomiast zmienne z zewnętrznych zakresów są dostępne z poziomu bloków wewnętrznych.

challenge icon

Wyzwanie

Łatwy

Utwórz zagnieżdżone bloki do...end, aby pokazać, że zmienne lokalne o tej samej nazwie pozostają całkowicie odrębne w różnych zakresach.

Najpierw utwórz zmienną lokalną o nazwie playerLevel z wartością 10 w zewnętrznym zakresie i ją wypisz.

Następnie utwórz blok do...end, a w jego wnętrzu:

  • Zadeklaruj nową zmienną lokalną, również o nazwie playerLevel, z wartością 25
  • Wypisz tę wewnętrzną zmienną playerLevel

Po zakończeniu wewnętrznego bloku ponownie wypisz zewnętrzną zmienną playerLevel, aby pokazać, że pozostała niezmieniona.

To pokazuje, że zmienne lokalne o identycznych nazwach w różnych zakresach są całkowicie niezależne — zmienna wewnętrzna nie wpływa na zewnętrzną.

Spróbuj swoich sił

-- TODO: Napisz tutaj swój kod
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator Lua online