0Pricing
Zig Academy · Lezione

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

  1. Dichiarare tipi optional
  2. Eseguire l'unwrap in sicurezza con if e orelse
  3. Puntatori optional e ?*T
  4. null e undefined a confronto
← Torna a Zig Academy