Home Testo Corso Swift Introduzione alle Enum in Swift

Introduzione alle Enum in Swift

389
0
Enum

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.