0Pricing
Zig Academy · Lekcja

null a undefined

Dwa różne rodzaje braku wartości.

null a undefined to bezpłatna lekcja Zig Academy na CoddyKit. To lekcja 4 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.

Dwa słowa, dwa znaczenia

Zig ma zarówno null, jak i undefined, ale nie oznaczają one tego samego. Pomylenie ich jest klasycznym źródłem trudnych do zrozumienia błędów.

null oznacza brak wartości

null to rzeczywisty, określony stan: informuje, że typ opcjonalny celowo nie przechowuje żadnej wartości. Jest to znacząca wartość, którą można sprawdzać.

const x: ?i32 = null;

undefined oznacza brak określenia

undefined oznacza, że pamięć istnieje, ale jej zawartość jest przypadkowa. Oznacza to obietnicę zapisania prawdziwej wartości przed jej odczytaniem.

var buf: [4]u8 = undefined;

Tylko typy opcjonalne przechowują null

Wartość null można przypisać tylko do typów opcjonalnych. Zwykły i32 nigdy jej nie zaakceptuje, ponieważ brak wartości nie jest częścią jego typu.

Dowolny typ może mieć wartość undefined

W przeciwieństwie do tego niemal każda zmienna może początkowo mieć wartość undefined, aby zarezerwować pamięć teraz i wypełnić ją chwilę później.

var total: i32 = undefined;

Odczyt null jest bezpieczny

Sprawdzanie typu opcjonalnego pod kątem wartości null jest całkowicie bezpieczne i oczekiwane — właśnie tak wykrywa się brak wartości.

Odczyt undefined jest błędem

Odczyt wartości, która wciąż ma stan undefined, jest niedozwolonym działaniem. W bezpiecznych kompilacjach pamięć jest nawet wypełniana bajtami 0xAA, aby ujawnić ten błąd.

Obietnica złożona samemu sobie

Proszę myśleć o undefined jak o umowie: przed użyciem należy przypisać wartość. Złamanie tej zasady oznacza odczyt bezsensownych, nieprzewidywalnych danych.

Typowy wzorzec bufora

Często spotykanym idiomem jest zadeklarowanie bufora jako undefined, a następnie natychmiastowe wypełnienie go wynikiem odczytu lub wywołania funkcji formatującej.

var line: [256]u8 = undefined;

Wybierz właściwe narzędzie

Proszę używać null do modelowania rzeczywistej opcjonalności. undefined służy tylko do pominięcia zbędnej inicjalizacji, gdy wartość i tak zostanie od razu nadpisana.

To zupełnie różne pytania

null odpowiada na pytanie „czy istnieje wartość?”, a undefined na pytanie „czy pamięć została już zapisana?”. Rozdzielenie tych pojęć zapewnia bezpieczeństwo.

Szybkie sprawdzenie

Deklaruje Pan/Pani var buf: [8]u8 = undefined; i odczytuje buf[0] przed zapisaniem wartości. Co to oznacza?

Podsumowanie

Rozróżnił(a) Pan/Pani null (rzeczywisty brak wartości dla typów opcjonalnych) od undefined (niezainicjalizowanej pamięci, do której najpierw trzeba coś zapisać). To dwa różne pojęcia, których nie należy mylić. 🧠

Często zadawane pytania

Czy lekcja „null a undefined” jest bezpłatna?

Tak — pełny tekst „null a undefined” 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 „null a undefined”?

Dwa różne rodzaje braku wartości. Ć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 4 z 4.

Ile czasu zajmuje lekcja „null a undefined”?

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