Brak ukrytego sterowania przepływem i ukrytych alokacji
Poznaj założenia projektowe definiujące Ziga.
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. ✨
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
- Jaki problem rozwiązuje Zig?
- Zig a C, Rust i Go
- Brak ukrytego sterowania przepływem i ukrytych alokacji
- Co można zbudować w Zig