Zig Academy · Lekcja

Brak ukrytego sterowania przepływem i ukrytych alokacji

Poznaj założenia projektowe definiujące Ziga.

Lekcja 3 z 413 kroki

Brak ukrytego sterowania przepływem i ukrytych alokacji to bezpłatna lekcja Zig Academy na CoddyKit. To lekcja 3 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.

Dwie słynne obietnice

Zig jest znany z dwóch zasad: braku ukrytego przepływu sterowania i braku ukrytych alokacji. Razem sprawiają one, że kod łatwo czytać i darzyć zaufaniem.

Co oznacza przepływ sterowania

Przepływ sterowania to kolejność wykonywania kodu. Ukryty przepływ sterowania występuje wtedy, gdy wykonywane są wywołania, których nie widać na stronie, co może później zaskoczyć.

Bez nieoczekiwanych wywołań funkcji

Zig nie ma przeciążania operatorów ani ukrytych destruktorów. Jeśli uruchamiana jest funkcja, jej wywołanie widać bezpośrednio w kodzie źródłowym.

Niepowodzenie jest widoczne

Nie ma wyjątków przeskakujących przez program. Aby zignorować niepowodzenie lub przekazać je dalej, trzeba napisać try albo catch, dzięki czemu ścieżki błędów są jawne.

const data = try readFile(path);

Co oznacza alokacja

Alokacja rezerwuje pamięć na dane podczas działania programu. Ukryte alokacje to takie, które język wykonuje za Państwa po cichu, za prostym wywołaniem.

Alokatory są przekazywane

W Zigu kod, który potrzebuje pamięci sterty, przyjmuje alokator jako parametr. Jeśli funkcja może alokować pamięć, jej sygnatura jasno to pokazuje.

fn loadConfig(allocator: std.mem.Allocator) !Config {
    // ...
}

To Państwo wybierają strategię

Ponieważ przekazują Państwo alokator, decydują Państwo, skąd pochodzi pamięć: może to być alokator sprawdzający kod w trybie debugowania, arena albo stały bufor na stosie.

Dlaczego to pomaga

Widoczne alokacje sprawiają, że koszt pamięci jest oczywisty, co jest niezwykle cenne podczas dostrajania wydajności oraz w przypadku urządzeń wbudowanych, które w ogóle nie mają sterty.

Czytanie zamiast zgadywania

Te zasady oznaczają, że rozumują Państwo o kodzie na podstawie czytania, a nie zapamiętywania ukrytych mechanizmów. To, co widać, jest tym, co się wykonuje.

defer jasno porządkuje sprzątanie

Sprzątanie również jest jawne. Instrukcja defer planuje wykonanie kodu po zakończeniu zakresu, dzięki czemu zwalnianie pamięci znajduje się bezpośrednio obok alokacji.

const buf = try allocator.alloc(u8, 64);
defer allocator.free(buf);

Kompromis: więcej pisania

Uczciwą ceną jest nieco więcej pisania: trzeba przekazywać alokatory przez kod. W zamian otrzymują Państwo pełną przejrzystość i kontrolę.

Szybkie sprawdzenie

Skąd wiadomo, że funkcja Ziga może alokować pamięć?

Podsumowanie

Brak ukrytego przepływu sterowania i ukrytych alokacji oznacza, że niepowodzenia oraz pamięć są zawsze widoczne. Czytają Państwo kod i dokładnie wiedzą, co się wydarzy. ✨

Bezpłatny start

Ucz się Zig dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
30
Lekcje
120

Często zadawane pytania

Czy lekcja „Brak ukrytego sterowania przepływem i ukrytych alokacji” jest bezpłatna?

Tak — pełny tekst „Brak ukrytego sterowania przepływem i ukrytych alokacji” 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 „Brak ukrytego sterowania przepływem i ukrytych alokacji”?

Poznaj założenia projektowe definiujące Ziga. Ć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 3 z 4.

Ile czasu zajmuje lekcja „Brak ukrytego sterowania przepływem i ukrytych alokacji”?

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. Jaki problem rozwiązuje Zig?
  2. Zig a C, Rust i Go
  3. Brak ukrytego sterowania przepływem i ukrytych alokacji
  4. Co można zbudować w Zig
← Powrót do Zig Academy