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.