In questa lezione vediamo cosa è l’istruizione Enum a cosa serve e come utilizzarla.
Molte volte capita di dover raggruppare un insieme di dati appartenenti a una stessa categoria, si potrei utilizzare array, dizionari ecc ecc ma essi vengono scelti anche per la possibilità di poter interagire con loro tramite le diverse funzioni di inserimento, modifica, cancellazione ecc ecc.
Gli Enum invece vengono creati quando abbiamo bisogno di creare un insieme di dati statici dove non necessità interagire con loro, esempio i giorni della settimana, le regioni d’Italia, i pianeti del sistema solare o semplicemente un elenco di errori che potrebbero verificarsi nella Tua applicazione.
Gli enumeratori ti offrono un nuovo modo per raggruppare elementi della stessa natura.
Ad ogni elemento si associa un case, più o meno come l’istruzione switch, grazie al quale sarà possibile accedere all’elemento stesso. Anche in questo caso ogni case può avere più elementi.
// Creo Enum enum GiorniSettimana { case lunedì case martedì case mercoledì case giovedì case venerdì case sabato case domenica } var giorno = GiorniSettimana.lunedì switch giorno { case .lunedì: print("1° giorno della settimana.") case .martedì: print("2° giorno della settimana.") case .mercoledì: print("3° giorno della settimana.") case .giovedì: print("4° giorno della settimana.") case .venerdì: print("5° giorno della settimana.") case .sabato: print("6° giorno della settimana.") case .domenica: print("7° giorno della settimana.") }
Nell’esempio ho creato un enum contenente i giorni della settimana, poi ho associato l’enum a una variabile e fatto un controllo tramite uno switch del valore e stampato a video il risultato.
Potrei avere anche la necessità di associare un valore a ogni case per poi poterlo utilizzare fuori dalla enum, vediamo come fare:
enum menu: String { case lunedì = "Primo: pasta, Secondo: carne....." case mertedì = "Primo: riso, Secondo: pesce....." case mercoledì = "Primo: minestrone, Secondo: uova....." } print(menu.mertedì.rawValue) print("--------------------") // forma Contratta var menuGiorno: menu menuGiorno = .lunedì print(menuGiorno.rawValue) print("------------------")
Nell’esempio ho creato un enum chiamato menu contenete un tipo di dato string, ad ogni case ho associato un stringa e successivamente ho letto il valore tramite l’utilizzo della parola chiave rawValue.
E’ possibile anche accedere al contenuto dell’enum tramite una forma contratta assegnado la nostra enum come tipo di dato a una variabile e poi assegnandogli tramite la forma contratta “punto” valore il contenuto del case.
Possiamo inserire una variabile all’interno del mio enum, vediamo come:
enum Icon: String { case music case sports case weather var filename: String { return "(rawValue).png" } } let icon = Icon.sports icon.filename print(icon.filename)
nell’esempio a secondo del case selezionato la variabile filename assume il valore del case più una costante .png.
Per qualunque dubbio o domanda scrivi un commento in questa lezione.