Zig Academy · Lektion

comptime-parametrar och värden

Skicka värden som finns vid kompileringstid

Lektion 2 av 413 steg

comptime-parametrar och värden är en gratis lektion i Zig Academy på CoddyKit. Detta är lektion 2 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.

Vissa argument måste vara kända tidigt

Ibland behöver en funktion ett argument som kompilatorn kan se, inte bara det körande programmet. Zig låter er markera en sådan parameter som comptime. 🧩

Markera en comptime-parameter

Skriv comptime före parameternamnet för att kräva att värdet är känt vid kompileringstid. Anroparen måste skicka ett känt värde.

fn repeat(comptime n: usize) void {}

Anroparen tillhandahåller ett känt värde

En comptime-parameter accepterar bara värden som kompilatorn redan känner till, till exempel literaler eller andra konstanter vid kompileringstid.

repeat(3);

Värden vid körtid avvisas

Om ni skickar ett värde som bara är känt vid körtid till en comptime-parameter rapporterar Zig ett tydligt kompileringsfel.

comptime i en funktionskropp

Ni kan också tvinga ett lokalt uttryck att beräknas tidigt. Ett comptime-block körs under kompileringen och producerar en konstant.

const table = comptime buildTable();

comptime var för tillstånd vid kompileringstid

En comptime var är en föränderlig variabel som bara finns under kompileringen. Använd den för att bygga upp ett värde medan kod vid kompileringstid körs.

comptime var sum = 0;

Kända värden specialiserar funktioner

Eftersom ett comptime-argument är fast kan Zig generera en anpassad version av funktionen för just det värdet.

Blanda comptime- och vanliga parametrar

En funktion kan ta emot båda typerna samtidigt: en comptime-parameter för den kända delen och vanliga parametrar för data vid körtid.

fn scale(comptime factor: u8, x: u32) u32 {
    return x * factor;
}

Validera argument tidigt

Eftersom värdet är känt kan ni kontrollera det under kompileringen och stoppa bygget om det är felaktigt, innan programmet någonsin körs. ✅

Ingen kostnad vid körtid

Arbete som styrs av en comptime-parameter utförs under bygget. Den resulterande binärfilen innehåller svaret och inget återstår att beräkna.

Inuti är parametern en konstant

Inuti funktionskroppen fungerar en comptime-parameter som en fast konstant, så ni kan använda den i arraystorlekar och på andra platser som kräver kompileringstid.

fn buffer(comptime n: usize) [n]u8 {
    return undefined;
}

Snabb kontroll

En funktion deklarerar en parameter som comptime n: usize. Vilken typ av värde måste anroparen skicka?

Sammanfattning

Markera en parameter som comptime för att kräva ett värde vid kompileringstid. Zig kan då validera värdet och specialisera funktionen utan kostnad vid körtid. 🎯

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 ”comptime-parametrar och värden” gratis?

Ja – hela texten till ”comptime-parametrar och 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 ”comptime-parametrar och värden”?

Skicka värden som finns vid kompileringstid 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 2 av 4.

Hur lång tid tar lektionen ”comptime-parametrar och 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