Enums Flashcards

(10 cards)

1
Q

Cos’è un enum?

A

Un tipo di dato che rappresenta un valore esattamente uno tra un insieme finito di varianti predefined.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Quali sono gli elementi principali che compongono un enum?

A

1) Dichiarazione globale del tipo 2) Varianti (costruttori) 3) Eventuali dati associati a ciascuna variante 4) Pattern matching.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Cosa sono le varianti di un enum e come si definiscono?

A

Le varianti sono i costruttori che definiscono i possibili stati del tipo, es. Option::Some(T) o Option::None.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

A cosa servono i dati associati nelle varianti di un enum?

A

Permettono di includere payload specifici in ogni variante, rendendo l’enum più flessibile.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Come si utilizza il pattern matching con gli enum?

A

Si scompone l’enum usando match, fornendo un branch per ogni variante per gestire i casi.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Quali vantaggi offre l’enum in termini di sicurezza del tipo?

A

Garantisce che tutte le varianti siano gestite, eliminando classi di errori come il null pointer.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

In che modo gli enum migliorano l’espressività di un’API?

A

Raggruppano insieme casi diversi sotto un’unica API, rendendo il codice più chiaro e mantenibile.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Perché gli enum sono efficienti rispetto a classi o oggetti runtime?

A

Implementazione interna compatta e ottimizzata, senza overhead di classi o oggetti a runtime.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Quando è consigliato usare un enum?

A

1) Modello dati limitato 2) Gestione di casi opzionali 3) Definizione di nodi AST o protocolli.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Quali sono alcune applicazioni pratiche degli enum in Rust?

A

I/O di rete (RPC/HTTP), parsing AST, error handling con Result<E>, stati di GUI/giochi, DSL embed.</E>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly