Varför Zig inte har dolda allokeringar
Allokeringen skickas alltid in som argument
Varför Zig inte har dolda allokeringar är en gratis lektion i Zig Academy på CoddyKit. Detta är lektion 1 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.
Minnet är explicit
I Zig hämtar ingen standardbiblioteksfunktion tyst minne från heapen. Om kod behöver allokera måste den säga det tydligt. 📦
Du skickar in allokeraren
Allt som allokerar tar en allocator som parameter. Minne kan inte uppstå om du inte ger en funktion verktyget som skapar det.
fn buildList(allocator: std.mem.Allocator) !void {}Inget dolt new-nyckelord
Zig har ingen new-operator och ingen skräpsamlare. Inget når heapen bakom din rygg på det sätt som många språk gör.
Varför detta spelar roll
Eftersom allokeringen är synlig vet du alltid var minnet kommer ifrån. Det är avgörande för inbyggda kretsar, kärnor och täta spelloopar.
Läs signaturen
En funktion som kan allokera visar det i sin signatur: den tar en allocator och returnerar vanligtvis en error union med !.
fn dupe(a: std.mem.Allocator, s: []const u8) ![]u8 {}Stacken är gratis
Vanliga lokala variabler lever på stacken och behöver ingen allocator. Du använder en först när ett värde måste överleva sin funktion eller växa under körning.
var x: i32 = 5; // stack, no allocationAllokering kan misslyckas
En begäran om heapminne kan misslyckas, så funktioner som allokerar returnerar ett fel. Du måste hantera ett möjligt OutOfMemory och aldrig ignorera det.
Du äger det du skapar
Den som anropar allocatern äger resultatet och måste frigöra det. Zig frigör aldrig ditt minne åt dig, så ägarskapet är alltid tydligt.
Byt allocators fritt
Eftersom allocatern är en parameter kan du byta strategi utan att ändra logiken. Tester använder en allocator och produktion en annan.
Bibliotek är ärliga
Ett välskrivet bibliotek döljer aldrig en allokering. Det tar emot din allocator, så att du styr minnet även i andras kod.
Förutsägbart genom design
Denna regel är en del av Zigs löfte om inget dolt kontrollflöde. Explicit allokering håller program förutsägbara och lätta att resonera om. ✅
Snabb kontroll
Kom ihåg hur en Zig-funktion får möjlighet att allokera.
Sammanfattning
Du såg att Zig inte har några dolda allokeringar: minne kommer endast via en allocator som du skickar in, och du äger och frigör allt du skapar. 🎯
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 ”Varför Zig inte har dolda allokeringar” gratis?
Ja – hela texten till ”Varför Zig inte har dolda allokeringar” 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 ”Varför Zig inte har dolda allokeringar”?
Allokeringen skickas alltid in som argument 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 1 av 4.
Hur lång tid tar lektionen ”Varför Zig inte har dolda allokeringar”?
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
- Varför Zig inte har dolda allokeringar
- Allokerargränssnittet
- alloc, free, create, destroy
- Dynamiska listor med ArrayList