Enumerazioni con dati
ogni elemento di una enum può avere uno o più dati associati, che si comportano come le union del C.
Quando facciamo pattern matching tramite match di una enum, possiamo associare un nome di variabile ad ogni valore.
Un dettaglio nell'uso di memoria di enum:
- Ogni valore di un determinato enum occuperà una dimensione di memoria pari a quella dell'elemento più grande. Questo permette a tutti i potenziali valori di essere contenuti nello stesso spazio di memoria.
- Oltre al tipo di dati dell'elemento (se specificato), ogni componente ha anche un codice numerico che rappresenta quale dei possibili valori assume.
Altri dettagli:
enum di Rust è qualcosa che in altri linguaggi è conosciuto come tagged union.
- La combinazione di tipi per creare un nuovo tipo è una caratteristica per la quale possiamo dire che Rust ha i tipi algebrici, ovvero algebraic types.