I tipi enumerati (enum) sono un caso speciale di tipi somma. Un enum è un tipo che ha un numero fisso di possibili valori, ognuno con un nome distinto. Go non ha un tipo enum come funzionalità linguistica distinta, ma gli enum sono semplici da implementare usando idiomi linguistici esistenti. |
|
![]() ![]()
|
|
|
|
Il nostro tipo enum |
|
I possibili valori per |
|
Implementando l’interfaccia fmt.Stringer,
i valori di Questo può diventare ingombrante se ci sono molti valori possibili. In tali
casi lo strumento stringer
può essere usato insieme a |
|
|
|
Se abbiamo un valore di tipo |
|
|
|
transition emula una transizione di stato per un server; prende lo stato esistente e restituisce un nuovo stato. |
|
Supponiamo di controllare alcuni predicati qui per determinare il prossimo stato… |
|
|
Prossimo esempio: Embedding di Struct.