Metodi degli enum e interi sottostanti
Aggiungere comportamento e controllare la rappresentazione
Metodi degli enum e interi sottostanti è 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.
Gli enum possono avere un comportamento
Un enum è un tipo reale, quindi può contenere metodi. Si dichiarano le funzioni all'interno del corpo dell'enum, accanto ai nomi dei valori.
Un metodo su un enum
Scriva una funzione all'interno dell'enum e prenda self come primo parametro. Funziona proprio come un metodo su una struct.
const Color = enum { red, green, fn isRed(self: Color) bool { return self == .red; } };Chiamare i metodi degli enum
Si chiama un metodo con la sintassi del punto su un valore. Il valore diventa self, quindi il metodo sa su quale variante è stato chiamato.
const ok = c.isRed();Ogni enum ha un supporto intero
Internamente, ogni valore dell'enum corrisponde a un intero. Zig sceglie un tipo intero di supporto piccolo, capace di contenere tutti i valori.
La numerazione predefinita parte da zero
Per impostazione predefinita, il primo valore è 0 e ogni valore successivo aumenta di uno. Quindi red è 0, green è 1 e così via in base all'ordine.
const Color = enum { red, green, blue }; // 0, 1, 2Scelta del tipo di supporto
Può specificare tra parentesi l'intero di supporto, ad esempio enum(u8). In questo modo fissa l'ampiezza esatta, importante per il layout e l'interoperabilità.
const Code = enum(u8) { a, b, c };Impostazione di valori espliciti
Assegni un numero specifico a un valore con =. È utile quando gli interi devono corrispondere a un protocollo o a un registro hardware.
const Status = enum(u8) { ok = 0, busy = 1, err = 255 };Da enum a intero
Trasformi un valore enum nel suo numero con @intFromEnum. In questo modo ottiene l'intero sottostante da inviare o memorizzare.
const n = @intFromEnum(Status.err); // 255Da intero a enum
Faccia il contrario con @enumFromInt, per convertire un numero nuovamente in un valore enum del tipo previsto.
const s: Status = @enumFromInt(1);Convertire con cautela
@enumFromInt presume che il numero sia una variante valida. Nelle build sicure un valore errato viene rilevato; altrimenti spetta a Lei convalidarlo.
Metodi e tag insieme
Combini entrambe le idee: scelga un tipo di supporto per il layout, imposti i valori per un protocollo e aggiunga metodi per mantenere l'enum autonomo.
Verifica rapida
Ha un valore dell'enum Status e ne vuole il numero sottostante. Quale builtin usa?
Riepilogo
Ha aggiunto metodi agli enum usando self, ha scelto un intero di supporto come enum(u8), ha impostato valori espliciti e ha convertito in entrambe le direzioni con @intFromEnum e @enumFromInt. 🔢
Domande Frequenti
La lezione «Metodi degli enum e interi sottostanti» è gratuita?
Sì — il testo completo di «Metodi degli enum e interi sottostanti» è 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 «Metodi degli enum e interi sottostanti»?
Aggiungere comportamento e controllare la rappresentazione 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 «Metodi degli enum e interi sottostanti»?
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
- Enum per un insieme fisso di valori
- Unioni che contengono uno tra molti tipi
- Unioni taggate e switch
- Metodi degli enum e interi sottostanti