Zig Academy · Lektion

Typer är comptime-värden

Behandla en typ som vilket annat värde som helst

Lektion 3 av 413 steg

Typer är comptime-värden är en gratis lektion i Zig Academy på CoddyKit. Detta är lektion 3 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Zig Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Zig Academy innehåller totalt 4 lektioner.

En typ är bara ett värde

I Zig är en typ inte magisk syntax: den är ett vanligt värde som ni kan lagra, skicka och returnera. Den finns helt enkelt bara vid kompileringstid. 🧠

Typen för en typ är type

Alla typer har typen type. u8 är alltså ett värde vars typ är type, precis som 5 är ett värde vars typ är ett heltal.

const T: type = u8;

Bind en typ till en const

Ni kan ge en typ ett namn med en konstant. Här blir Number ett annat namn för i32, som ni kan använda överallt där en typ förväntas.

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

Skicka en typ till en funktion

En funktion kan ta emot en typ som en comptime-parameter. Argumentet är ett riktigt värde som utvärderas medan programmet kompileras.

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

Returnera en typ från en funktion

Eftersom typer är värden kan en funktion returnera en typ. Dess returtyp är helt enkelt type, och funktionskroppen producerar en typ som resultat.

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

Så fungerar generics

Att skicka och returnera typer är grunden för Zigs generics. Det finns ingen särskild syntax för generics, bara typvärden som skickas runt.

Typer finns bara vid kompileringstid

Ett värde av typen type finns bara under kompileringen. Ni kan inte lagra en typ i en variabel vid körtid eller läsa in en från indata.

Inspektera en typ med inbyggda funktioner

Inbyggda funktioner behandlar en typ som data. @sizeOf tar ett typvärde och returnerar hur många byte en instans av typen upptar.

const bytes = @sizeOf(u32);

Jämför typer för likhet

Eftersom typer är värden kan du jämföra dem vid kompilering. Uttrycket T == u8 är sant endast när T är exakt u8.

Välj en typ vid kompilering

Du kan välja gren utifrån en typ och välja en annan, allt under kompileringen. På så sätt kan en funktion anpassa sitt behavior efter typen den får.

Ge en typ ett namn från ett funktionsresultat

Eftersom en funktion kan returnera en typ kan du binda resultatet till en konstant och sedan använda det precis som vilket inbyggt typenamn som helst.

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

Snabbkontroll

I Zig, vilken typ har typen u8 själv?

Sammanfattning

Typer i Zig är comptime values av typen type. Du kan namnge, skicka, returnera och jämföra dem, vilket är precis så generiska konstruktioner byggs. 🎯

Gratis att börja

Lär dig Zig med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
30
Lektioner
120

Vanliga frågor

Är lektionen ”Typer är comptime-värden” gratis?

Ja – hela texten till ”Typer är comptime-värden” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Zig Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Zig Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Typer är comptime-värden”?

Behandla en typ som vilket annat värde som helst Ni övar på Zig Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Zig Academy?

Du behöver inga förkunskaper. Utbildningen i Zig Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.

Hur lång tid tar lektionen ”Typer är comptime-värden”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Zig Academy-lektionen?

Ja. Varje Zig Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Kompileringstid jämfört med körtid
  2. comptime-parametrar och värden
  3. Typer är comptime-värden
  4. inline for och utrullade loopar
← Tillbaka till Zig Academy