Bezpieczne rozpakowywanie za pomocą if i orelse
Obsługuj null bez niespodzianek.
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. ✅
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
- Deklarowanie typów opcjonalnych
- Bezpieczne rozpakowywanie za pomocą if i orelse
- Opcjonalne wskaźniki i ?*T
- null a undefined