0Pricing
Zig Academy · Lezione

Unioni che contengono uno tra molti tipi

Memorizzare forme alternative in uno stesso spazio

Unioni che contengono uno tra molti tipi è una lezione Zig Academy gratuita su CoddyKit. Questa è la lezione 2 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.

Uno slot, molte forme

A volte un valore può essere un intero o un numero in virgola mobile, ma non entrambi contemporaneamente. Una union memorizza esattamente uno tra diversi tipi possibili in un singolo slot.

Dichiarare una union

Scriva union ed elenchi i campi denominati, ciascuno con il proprio tipo. Il valore contiene uno solo di questi campi in ogni momento.

const Number = union { int: i64, float: f64 };

Contiene un campo alla volta

A differenza di una struct, una union non conserva tutti i campi contemporaneamente. Memorizza un solo campo attivo e gli altri non sono presenti.

Impostazione del campo attivo

Si inizializza una union scegliendo un campo con la sintassi del punto. Quel campo diventa quello attivo per il valore.

var n = Number{ .int = 42 };

Lettura del campo attivo

Si legge una union attraverso il campo impostato. Accedendo a n.int si ottiene l'intero memorizzato, proprio come quando si accede a una struct.

const x = n.int;

La memoria è condivisa

Una union riserva spazio per il campo più grande e riutilizza quello spazio. Questo la rende un modo compatto per contenere una delle diverse varianti.

Cambio del campo attivo

L'assegnazione di un nuovo campo lo rende quello attivo e il vecchio valore scompare. La union ora rappresenta una forma diversa.

n = Number{ .float = 3.14 };

Lettura del campo errato

Se si legge un campo che non è attivo, si tratta di un bug. Nelle build sicure Zig rileva l'accesso errato e attiva un panic.

const f = n.int; // wrong field active

Una union semplice non ha un tag

Una union semplice non ricorda quale campo sia attivo. Deve tenerne traccia Lei, ed è esattamente il problema risolto da una union con tag.

Union e struct a confronto

Una struct è un AND logico dei suoi campi, tutti presenti insieme. Una union è un OR logico: alla volta esiste un solo campo.

Quando usare una union

Usi una union quando un valore assume naturalmente una tra poche forme, ad esempio un token che è un numero oppure un simbolo, mai entrambe contemporaneamente.

Verifica rapida

Quanti campi di una union contengono un valore contemporaneamente?

Riepilogo

Ha conosciuto le union: un solo slot che contiene un singolo campo tra diverse opzioni tipizzate. Condividono la memoria, quindi imposti e legga solo il campo attivo. 🔀

Domande Frequenti

La lezione «Unioni che contengono uno tra molti tipi» è gratuita?

Sì — il testo completo di «Unioni che contengono uno tra molti tipi» è 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 «Unioni che contengono uno tra molti tipi»?

Memorizzare forme alternative in uno stesso spazio 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 2 di 4.

Quanto tempo richiede la lezione «Unioni che contengono uno tra molti tipi»?

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. Enum per un insieme fisso di valori
  2. Unioni che contengono uno tra molti tipi
  3. Unioni taggate e switch
  4. Metodi degli enum e interi sottostanti
← Torna a Zig Academy