Enums Flashcards
(10 cards)
Cos’è un enum?
Un tipo di dato che rappresenta un valore esattamente uno tra un insieme finito di varianti predefined.
Quali sono gli elementi principali che compongono un enum?
1) Dichiarazione globale del tipo 2) Varianti (costruttori) 3) Eventuali dati associati a ciascuna variante 4) Pattern matching.
Cosa sono le varianti di un enum e come si definiscono?
Le varianti sono i costruttori che definiscono i possibili stati del tipo, es. Option::Some(T) o Option::None.
A cosa servono i dati associati nelle varianti di un enum?
Permettono di includere payload specifici in ogni variante, rendendo l’enum più flessibile.
Come si utilizza il pattern matching con gli enum?
Si scompone l’enum usando match
, fornendo un branch per ogni variante per gestire i casi.
Quali vantaggi offre l’enum in termini di sicurezza del tipo?
Garantisce che tutte le varianti siano gestite, eliminando classi di errori come il null pointer.
In che modo gli enum migliorano l’espressività di un’API?
Raggruppano insieme casi diversi sotto un’unica API, rendendo il codice più chiaro e mantenibile.
Perché gli enum sono efficienti rispetto a classi o oggetti runtime?
Implementazione interna compatta e ottimizzata, senza overhead di classi o oggetti a runtime.
Quando è consigliato usare un enum?
1) Modello dati limitato 2) Gestione di casi opzionali 3) Definizione di nodi AST o protocolli.
Quali sono alcune applicazioni pratiche degli enum in Rust?
I/O di rete (RPC/HTTP), parsing AST, error handling con Result<E>, stati di GUI/giochi, DSL embed.</E>