Vai al contenuto

ENUM

Cosa imparerò:

  • Enumeratori
  • Protocolli

Un enum è un tipo di dato che rappresenta un gruppo di valori correlati, garantendo type-safety nel codice.

// Definizione di un'enumerazione chiamata DayOfWeek
enum DayOfWeek {
    case monday, tuesday, wednesday, thursday, friday, saturday, sunday
}
// Utilizzo dell'enumerazione DayOfWeek
var today = DayOfWeek.saturday
switch today {
case .monday, .tuesday, .wednesday, .thursday, .friday:
    print("Weekday")
case .saturday, .sunday:
    print("Weekend")
}

Output

Weekend

Gli enum possono adottare i protocolli, per esempio adottando CustomStringConvertible, si può definire una rappresentazione testuale personalizzata per ciascun caso dell’enum.

enum Color: String, CustomStringConvertible {
    case red
    case green
    case blue
    case yellow
    case orange
    case purple
    var description: String {
        return self.rawValue.capitalized
    }
}
// Utilizzo dell'enumerazione Color
let myColor = Color.red
print("Selected color: \(myColor)")

Output

Selected color: Red

Gli enum in Swift non servono solo a elencare casi, ma sono veri tipi con metodi, proprietà e, più avanti, anche valori associati.