null e undefined a confronto
Due diversi tipi di assenza
null e undefined a confronto è una lezione Zig Academy gratuita su CoddyKit. Questa è la lezione 4 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 parole, due significati
Zig presenta sia null sia undefined, e non sono la stessa cosa. Confonderli è una causa classica di bug difficili da capire.
null significa nessun valore
null è uno stato reale e definito: indica che questo optional non contiene intenzionalmente nulla. È un valore significativo e verificabile.
const x: ?i32 = null;undefined significa non specificato
undefined significa che lo spazio di memoria esiste, ma il suo contenuto è spazzatura. Si impegna a scrivere un valore reale prima di leggerlo.
var buf: [4]u8 = undefined;Solo gli optional contengono null
Può assegnare null solo a tipi optional. Un semplice i32 non lo accetterà mai, perché l'assenza non fa parte del suo tipo.
Qualsiasi tipo può essere undefined
Al contrario, quasi qualsiasi variabile può iniziare come undefined per riservare subito la memoria e valorizzarla poco dopo.
var total: i32 = undefined;Leggere null è sicuro
Confrontare un optional con null è perfettamente sicuro e previsto: è esattamente il modo per rilevare un valore assente.
Leggere undefined è un bug
Leggere un valore che è ancora undefined è un comportamento illegale. Le build sicure lo riempiono persino con byte 0xAA per rendere evidente l'errore.
Una promessa fatta a se stessi
Consideri undefined come un contratto: si impegna ad assegnare un valore prima dell'uso. Se lo infrange, legge dati privi di significato e imprevedibili.
Schema comune per i buffer
Un idioma frequente consiste nel dichiarare un buffer come undefined, quindi riempirlo immediatamente con una lettura o una chiamata di formattazione.
var line: [256]u8 = undefined;Scegliere lo strumento giusto
Usi null per rappresentare una vera opzionalità. Usi undefined solo per evitare un'inizializzazione superflua che sovrascriverà subito dopo.
Domande completamente diverse
null risponde alla domanda «esiste un valore?», mentre undefined risponde a «la memoria è già stata scritta?». Tenerli separati la mantiene al sicuro.
Verifica rapida
Dichiara var buf: [8]u8 = undefined; e legge buf[0] prima di scriverlo. Che cosa succede?
Riepilogo
Ha distinto null (un valore assente reale per gli optional) da undefined (memoria non inizializzata che deve essere scritta prima). Due concetti distinti, da non confondere. 🧠
Domande Frequenti
La lezione «null e undefined a confronto» è gratuita?
Sì — il testo completo di «null e undefined a confronto» è 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 «null e undefined a confronto»?
Due diversi tipi di assenza 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 4 di 4.
Quanto tempo richiede la lezione «null e undefined a confronto»?
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
- Dichiarare tipi optional
- Eseguire l'unwrap in sicurezza con if e orelse
- Puntatori optional e ?*T
- null e undefined a confronto