Nessun flusso di controllo nascosto, nessuna allocazione nascosta
Le promesse progettuali che definiscono Zig
Nessun flusso di controllo nascosto, nessuna allocazione nascosta è una lezione Zig Academy gratuita su CoddyKit. Questa è la lezione 3 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.
Due promesse famose
Zig è noto per due regole: nessun flusso di controllo nascosto e nessuna allocazione nascosta. Insieme rendono il codice facile da leggere e da considerare affidabile.
Che cosa significa flusso di controllo
Il flusso di controllo è l'ordine in cui viene eseguito il codice. Il flusso di controllo nascosto si verifica quando vengono effettuate chiamate che non potete vedere nella pagina e che possono sorprendervi in seguito.
Nessuna chiamata a funzione inattesa
Zig non ha overload degli operatori né distruttori nascosti. Se viene eseguita una funzione, potete vedere la relativa chiamata direttamente nel sorgente.
Il fallimento è visibile
Non ci sono eccezioni che attraversano il programma. Per ignorare o trasmettere un fallimento, scrivete try o catch, così i percorsi degli errori sono espliciti.
const data = try readFile(path);Che cosa significa allocazione
Un'allocazione riserva memoria per i vostri dati mentre il programma è in esecuzione. Le allocazioni nascoste sono quelle effettuate automaticamente dal linguaggio, in silenzio, dietro una semplice chiamata.
Gli allocator vengono passati
In Zig, il codice che necessita di memoria nell'heap riceve un allocator come parametro. Se una funzione può allocare, lo dichiara chiaramente nella propria firma.
fn loadConfig(allocator: std.mem.Allocator) !Config {
// ...
}Scegliete la strategia
Poiché passate l'allocator, decidete da dove proviene la memoria: da uno che esegue controlli di debug, da un'arena o da un buffer fisso nello stack.
Perché vi è utile
Le allocazioni visibili rendono evidente il costo della memoria, un aspetto prezioso per ottimizzare le prestazioni e per i sistemi embedded che non dispongono affatto di un heap.
Leggere è meglio che indovinare
Queste regole vi permettono di ragionare sul codice leggendolo, invece di memorizzare meccanismi nascosti. Ciò che vedete è ciò che viene eseguito.
defer rende chiara la pulizia
Anche la pulizia è esplicita. Un'istruzione defer programma l'esecuzione del codice al termine dello scope, quindi il rilascio della memoria si trova accanto all'allocazione.
const buf = try allocator.alloc(u8, 64);
defer allocator.free(buf);Il compromesso: più codice da scrivere
Il costo onesto è dover scrivere un po' di codice in più: dovete propagare gli allocator nel programma. In cambio ottenete piena chiarezza e controllo.
Verifica rapida
Come potete sapere se una funzione Zig potrebbe allocare memoria?
Riepilogo
Nessun flusso di controllo nascosto e nessuna allocazione nascosta significano che fallimenti e memoria sono sempre visibili. Leggete il codice e sapete esattamente che cosa accade. ✨
Domande Frequenti
La lezione «Nessun flusso di controllo nascosto, nessuna allocazione nascosta» è gratuita?
Sì — il testo completo di «Nessun flusso di controllo nascosto, nessuna allocazione nascosta» è 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 «Nessun flusso di controllo nascosto, nessuna allocazione nascosta»?
Le promesse progettuali che definiscono Zig 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 3 di 4.
Quanto tempo richiede la lezione «Nessun flusso di controllo nascosto, nessuna allocazione nascosta»?
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
- Quale problema risolve Zig?
- Zig a confronto con C, Rust e Go
- Nessun flusso di controllo nascosto, nessuna allocazione nascosta
- Che cosa si può costruire con Zig