0Pricing
Zig Academy · Lekcja

Typy są wartościami comptime

Traktuj typ jak każdą inną wartość.

Typy są wartościami comptime 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.

Typ to po prostu wartość

W Zig typ nie jest magiczną składnią: to zwykła wartość, którą można przechowywać, przekazywać i zwracać. Istnieje jednak wyłącznie w czasie kompilacji. 🧠

Typem typu jest type

Każdy typ ma typ type. Zatem u8 jest wartością, której typem jest type, podobnie jak 5 jest wartością, której typem jest liczba całkowita.

const T: type = u8;

Przypisz typ do const

Możesz nadać typowi nazwę za pomocą stałej. W tym przykładzie Number staje się inną nazwą dla i32, której można używać wszędzie tam, gdzie oczekiwany jest typ.

const Number = i32;
const x: Number = 7;

Przekaż typ do funkcji

Funkcja może przyjmować typ jako parametr comptime. Argument jest prawdziwą wartością obliczaną podczas kompilowania programu.

fn sizeOf(comptime T: type) usize {
    return @sizeOf(T);
}

Zwróć typ z funkcji

Ponieważ typy są wartościami, funkcja może jeden zwracać. Jej typem zwracanym jest po prostu type, a ciało tworzy typ jako wynik.

fn Pair() type {
    return struct { a: u8, b: u8 };
}

Tak działają typy generyczne

Przekazywanie i zwracanie typów stanowi podstawę typów generycznych w Zig. Nie ma specjalnej składni generycznej — są tylko przepływające wartości typu.

Typy istnieją tylko w czasie kompilacji

Wartość typu type istnieje wyłącznie podczas kompilacji. Nie można przechowywać typu w zmiennej czasu działania ani odczytać go z danych wejściowych.

Analizuj typ za pomocą funkcji wbudowanych

Wbudowane elementy traktują typ jak dane. @sizeOf przyjmuje wartość typu i zwraca liczbę bajtów zajmowanych przez jedną jego instancję.

const bytes = @sizeOf(u32);

Porównywanie typów pod kątem równości

Skoro typy są wartościami, można porównywać je podczas kompilacji. Wyrażenie T == u8 jest prawdziwe tylko wtedy, gdy T jest dokładnie typu u8.

Wybieranie typu podczas kompilacji

Można rozgałęziać wykonanie na podstawie typu i wybierać inny typ, a wszystko to podczas kompilacji. Dzięki temu jedna funkcja może dostosowywać swoje zachowanie do otrzymanego typu.

Nazywanie typu na podstawie wyniku funkcji

Skoro funkcja może zwracać typ, można powiązać ten wynik ze stałą, a następnie używać go tak jak nazwy dowolnego wbudowanego typu.

const Point = Pair();
const p: Point = .{ .a = 1, .b = 2 };

Szybkie sprawdzenie

Jaki jest w Zig typ samego typu u8?

Podsumowanie

Typy w Zig są wartościami comptime typu type. Można je nazywać, przekazywać, zwracać i porównywać — właśnie tak tworzy się generyki. 🎯

Często zadawane pytania

Czy lekcja „Typy są wartościami comptime” jest bezpłatna?

Tak — pełny tekst „Typy są wartościami comptime” 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 „Typy są wartościami comptime”?

Traktuj typ jak każdą inną wartość. Ć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 „Typy są wartościami comptime”?

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. Czas kompilacji a czas wykonywania
  2. Parametry i wartości comptime
  3. Typy są wartościami comptime
  4. inline for i rozwijanie pętli
← Powrót do Zig Academy