Zig Academy · Lektion

comptime-parametre og -værdier

Send værdier, der findes ved kompilering.

Lektion 2 af 413 trin

comptime-parametre og -værdier er en gratis Zig Academy-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Zig Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Zig Academy-kurset indeholder 4 lektioner i alt.

Nogle argumenter skal kendes tidligt

Nogle gange har en funktion brug for et argument, som compileren kan se, ikke kun det kørende program. Zig lader dig markere en sådan parameter med comptime. 🧩

Markér en comptime-parameter

Skriv comptime foran et parameternavn for at kræve, at værdien er kendt ved kompileringstid. Den kaldende kode skal sende en kendt værdi.

fn repeat(comptime n: usize) void {}

Den kaldende kode leverer en kendt værdi

En comptime-parameter accepterer kun værdier, som compileren allerede kender, f.eks. literaler eller andre konstanter ved kompileringstid.

repeat(3);

Værdier ved kørsel afvises

Hvis du sender en værdi, der først kendes ved kørselstid, ind i en comptime-parameter, rapporterer Zig en tydelig kompileringsfejl.

comptime i en krop

Du kan også tvinge et lokalt udtryk til at blive evalueret tidligt. En comptime-blok kører under kompileringen og producerer en konstant.

const table = comptime buildTable();

comptime var til tilstand ved kompileringstid

En comptime var er en variabel, der kan ændres, og som kun findes under kompileringen. Brug den til at samle en værdi, mens kode ved kompileringstid kører.

comptime var sum = 0;

Kendte værdier specialiserer funktioner

Fordi et comptime-argument er fast, kan Zig generere en tilpasset version af funktionen til netop denne værdi.

Bland comptime- og normale parametre

En funktion kan tage begge slags på én gang: en comptime-parameter til den kendte del og almindelige parametre til data ved kørselstid.

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

Validér argumenter tidligt

Da værdien er kendt, kan du kontrollere den under kompileringen og stoppe bygningen, hvis den er forkert, før programmet overhovedet kører. ✅

Ingen omkostning ved kørselstid

Arbejde, der styres af en comptime-parameter, udføres under bygningen. Den resulterende binærfil indeholder svaret, så der er intet tilbage at beregne.

Indeni er parameteren konstant

Inde i funktionens krop opfører en comptime-parameter sig som en fast konstant, så du kan bruge den i arraystørrelser og andre steder, der kræver kompileringstid.

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

Hurtigt tjek

En funktion erklærer en parameter som comptime n: usize. Hvilken slags værdi skal den kaldende kode sende?

Opsummering

Markér en parameter med comptime for at kræve en værdi ved kompileringstid. Zig kan derefter validere den og specialisere funktionen uden omkostning ved kørselstid. 🎯

Gratis at komme i gang

Lær Zig med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
30
Lektioner
120

Ofte stillede spørgsmål

Er lektionen “comptime-parametre og -værdier” gratis?

Ja — hele teksten til “comptime-parametre og -værdier” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Zig Academy-kurset, skal du opgradere til CoddyKit PRO. Zig Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “comptime-parametre og -værdier”?

Send værdier, der findes ved kompilering. Du øver dig i Zig Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Zig Academy?

Der kræves ingen tidligere erfaring. Zig Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.

Hvor lang tid tager lektionen “comptime-parametre og -værdier”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Zig Academy-lektion?

Ja. Alle Zig Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Ved kompilering eller under kørsel
  2. comptime-parametre og -værdier
  3. Typer er comptime-værdier
  4. inline for og udfoldede løkker
← Tilbage til Zig Academy