0Pricing
Zig Academy · Lezione

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, 2

Scelta 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); // 255

Da 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

  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