Zig Academy · Lekcja

Bezpieczne rozpakowywanie za pomocą if i orelse

Obsługuj null bez niespodzianek.

Lekcja 2 z 413 kroki

Bezpieczne rozpakowywanie za pomocą if i orelse to bezpłatna lekcja Zig Academy na CoddyKit. To lekcja 2 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.

Najpierw trzeba rozpakować wartość

Typ opcjonalny nie jest zawartą w nim wartością. Zanim będzie można użyć zawartości, trzeba go rozpakować i obsłużyć przypadek null.

Przechwytywanie za pomocą if

Instrukcja if użyta z typem opcjonalnym może przypisać wewnętrzną wartość za pomocą przechwytywania przez pionową kreskę. Treść instrukcji wykona się tylko wtedy, gdy typ opcjonalny nie ma wartości null.

if (maybe) |value| {
    use(value);
}

Obsługa gałęzi null

Proszę dodać else, aby zareagować, gdy typ opcjonalny ma wartość null. Oba wyniki są wtedy obsłużone i nie ma ryzyka pominięcia przypadku.

if (maybe) |v| {
    use(v);
} else {
    handleEmpty();
}

Przechwycona wartość jest rozpakowana

W treści if przechwycona nazwa oznacza zwykły typ wewnętrzny, a nie typ opcjonalny. Znak zapytania został już usunięty.

if (age) |a| {
    // a is i32, not ?i32
}

orelse dostarcza wartość domyślną

Operator orelse rozpakowuje typ opcjonalny, a jeśli ma on wartość null, zwraca zamiast tego wartość znajdującą się po prawej stronie.

const a = age orelse 0;

orelse jest wyrażeniem

Ponieważ orelse zwraca wartość, można użyć go bezpośrednio w dowolnym miejscu, na przykład przekazując liczbę z wartością domyślną prosto do wywołania funkcji.

print(level orelse 1);

orelse może wykonywać kod

Prawa strona operatora orelse może być blokiem kodu. Można użyć go do obliczenia wartości zastępczej albo nawet do wcześniejszego powrotu z bieżącej funkcji.

const v = lookup() orelse return;

Wymuszone rozpakowanie za pomocą .?

Zapis .? stwierdza, że typ opcjonalny nie ma wartości null, i zwraca zawartą w nim wartość. Jeśli w bezpiej kompilacji ma on wartość null, program zgłosi panic.

const a = age.?;

Używaj .? tylko przy pewności

Po .? należy sięgać tylko wtedy, gdy null jest naprawdę niemożliwe. W przeciwnym razie lepiej użyć if albo orelse, aby pusta wartość nie spowodowała awarii programu.

Wybierz rozwiązanie zgodnie z intencją

Proszę użyć if, aby rozgałęzić wykonanie zależnie od obecności wartości, orelse do szybkiego ustawienia wartości domyślnej, a .? tylko wtedy, gdy można dowieść, że wartość istnieje.

Bezpieczeństwo jest domyślne

Każde z tych narzędzi wymusza jawne uwzględnienie wartości null. Dlatego typy opcjonalne w Zig rzadko prowadzą do nieoczekiwanych awarii znanych z innych języków.

Szybkie sprawdzenie

Chce Pan/Pani użyć wartości domyślnej 0, gdy opcjonalna liczba całkowita ma wartość null. Które rozwiązanie będzie najlepsze?

Podsumowanie

Typy opcjonalne można rozpakowywać za pomocą przechwytywania w if, dostarczać wartości domyślne przez orelse albo sprawdzać założenie za pomocą .?. Każde z tych rozwiązań celowo wymusza obsługę null. ✅

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 „Bezpieczne rozpakowywanie za pomocą if i orelse” jest bezpłatna?

Tak — pełny tekst „Bezpieczne rozpakowywanie za pomocą if i orelse” 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 „Bezpieczne rozpakowywanie za pomocą if i orelse”?

Obsługuj null bez niespodzianek. Ć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 2 z 4.

Ile czasu zajmuje lekcja „Bezpieczne rozpakowywanie za pomocą if i orelse”?

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. Deklarowanie typów opcjonalnych
  2. Bezpieczne rozpakowywanie za pomocą if i orelse
  3. Opcjonalne wskaźniki i ?*T
  4. null a undefined
← Powrót do Zig Academy