0Pricing
Zig Academy · Lekcja

Gwarancje defer

Wykonuj kod po zakończeniu zakresu.

Gwarancje defer to bezpłatna lekcja Zig Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Zig Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Zig Academy zawiera 4 lekcji w sumie.

Sprzątanie, któremu można zaufać

Niemal każdy program otwiera coś, co później musi zamknąć. Zig udostępnia defer, dzięki któremu sprzątanie nigdy nie zostanie pominięte.

Działanie defer

Instrukcja defer planuje wykonanie fragmentu kodu po zakończeniu otaczającego zakresu, niezależnie od sposobu jego zakończenia.

defer cleanup();

Zapisz sprzątanie od razu

Najważniejsza zasada jest prosta: umieść wiersz sprzątania obok wiersza uzyskującego zasób, aby nie dało się ich rozdzielić.

const file = try open();
defer file.close();

Wykonuje się przy opuszczeniu zakresu

Odroczony kod nie wykonuje się od razu. Czeka, aż zakończy się zakres, w którym został zapisany, a następnie zostaje uruchomiony.

{
    defer cleanup();
    work();
}

Działa przy każdej ścieżce wyjścia

Niezależnie od tego, czy zakres kończy się normalnie, czy wcześniej wykonają Państwo return w jego środku, odroczony kod nadal się wykona. Nie ma od tego wyjątku.

defer file.close();
if (bad) return error.Oops;

Błędy go nie pomijają

Nawet jeśli późniejsze try w funkcji zwróci błąd, defer został już zaplanowany i wykona się podczas opuszczania zakresu.

Dowolna instrukcja, nie tylko wywołania

defer może zawierać dowolną pojedynczą instrukcję, w tym blok, dzięki czemu można połączyć kilka czynności sprzątających.

defer {
    free(buf);
    log("done");
}

Zakresy poza funkcjami

defer jest powiązane z otaczającym je zakresem, którym może być ciało pętli lub blok if, a nie tylko cała funkcja.

while (more()) {
    defer step();
}

Bez ręcznego śledzenia

Bez defer trzeba pamiętać o zamknięciu zasobu na każdej gałęzi. Z nim kompilator wykona sprzątanie, więc nie można zapomnieć o żadnej ścieżce.

Czytelność od góry do dołu

Ponieważ uzyskanie zasobu i sprzątanie znajdują się obok siebie, kod opowiada jasną historię: otwórz, użyj, a zamknięcie jest już zagwarantowane.

Podstawa bezpieczeństwa zasobów

Od plików przez alokacje po blokady — defer to codzienne narzędzie, które zapobiega wyciekom i utrzymuje programy Zig w porządku.

Szybkie sprawdzenie

Kiedy faktycznie wykonuje się odroczona instrukcja?

Podsumowanie

Poznał(a) Pan/Pani defer: sprzątanie należy zapisać obok uzyskania zasobu, a Zig gwarantuje jego wykonanie przy opuszczeniu zakresu na każdej ścieżce. 🧹

Często zadawane pytania

Czy lekcja „Gwarancje defer” jest bezpłatna?

Tak — pełny tekst „Gwarancje defer” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Zig Academy, przejdź na CoddyKit PRO. Kurs Zig Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Gwarancje defer”?

Wykonuj kod po zakończeniu zakresu. Ćwiczysz Zig Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Zig Academy?

Nie wymagamy żadnego doświadczenia. Zig Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Gwarancje defer”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Zig Academy?

Tak. Każda lekcja Zig Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Gwarancje defer
  2. Kolejność wykonywania wielu defer
  3. defer a errdefer w praktyce
  4. Łączenie open z close
← Powrót do Zig Academy