Perché Zig non ha allocazioni nascoste
L'allocatore viene sempre passato esplicitamente
Perché Zig non ha allocazioni nascoste è una lezione Zig Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Zig Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Zig Academy include 4 lezioni in totale.
La memoria è esplicita
In Zig, nessuna funzione della libreria standard acquisisce silenziosamente memoria dall'heap. Se il codice deve allocare, deve dichiararlo esplicitamente. 📦
Si passa l'allocatore
Qualsiasi operazione che alloca riceve un allocator come parametro. La memoria non può comparire se non si fornisce a una funzione lo strumento per crearla.
fn buildList(allocator: std.mem.Allocator) !void {}Nessuna parola chiave new nascosta
Zig non ha un operatore new né un garbage collector. Nulla accede all'heap alle Sue spalle come avviene in molti linguaggi.
Perché è importante
Poiché l'allocazione è visibile, sa sempre da dove proviene la memoria. Questo è fondamentale per i chip embedded, i kernel e i cicli di gioco con vincoli prestazionali.
Leggere la firma
Una funzione che può allocare lo mostra nella propria firma: riceve un allocator e di solito restituisce una error union con !.
fn dupe(a: std.mem.Allocator, s: []const u8) ![]u8 {}Lo stack è gratuito
Le variabili locali semplici vivono nello stack e non richiedono un allocator. Ne utilizza uno solo quando un valore deve sopravvivere alla propria funzione o crescere durante l'esecuzione.
var x: i32 = 5; // stack, no allocationL'allocazione può fallire
Richiedere memoria dall'heap può fallire, quindi le funzioni che allocano restituiscono un errore. Deve gestire un possibile OutOfMemory e non ignorarlo mai.
È proprietario di ciò che crea
Chi chiama l'allocator possiede il risultato e deve liberarlo. Zig non libera mai la memoria al posto Suo, quindi la proprietà è sempre chiara.
Scambiare liberamente gli allocator
Poiché l'allocator è un parametro, può scambiare le strategie senza modificare la logica. I test usano un allocator e la produzione un altro.
Le librerie sono trasparenti
Una libreria ben scritta non nasconde mai un'allocazione. Accetta il Suo allocator, così può controllare la memoria anche all'interno del codice di altri sviluppatori.
Prevedibile per progettazione
Questa regola fa parte della promessa di Zig di non avere flusso di controllo nascosto. L'allocazione esplicita mantiene i programmi prevedibili e facili da comprendere. ✅
Verifica rapida
Ricordi come una funzione Zig ottiene la possibilità di allocare.
Riepilogo
Ha visto che Zig non esegue allocazioni nascoste: la memoria arriva solo tramite un allocator passato alla funzione, e Lei possiede e libera tutto ciò che crea. 🎯
Impara Zig con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 30
- Lezioni
- 120
Domande Frequenti
La lezione «Perché Zig non ha allocazioni nascoste» è gratuita?
Sì — il testo completo di «Perché Zig non ha allocazioni nascoste» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Zig Academy, passa a CoddyKit PRO. Il corso Zig Academy include 4 lezioni in totale.
Cosa imparerò in «Perché Zig non ha allocazioni nascoste»?
L'allocatore viene sempre passato esplicitamente Eserciti Zig Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Zig Academy?
Non è richiesta alcuna esperienza precedente. Zig Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Perché Zig non ha allocazioni nascoste»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Zig Academy?
Sì. Ogni lezione Zig Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Perché Zig non ha allocazioni nascoste
- L'interfaccia dell'allocatore
- alloc, free, create, destroy
- Liste dinamiche con ArrayList