Sobes.tech
Junior — Middle

Kötelező minden lehetséges enum értéket lefedni a switch utasításban Swiftben?

sobes.tech MI

Válasz az MI-től

Swift-ben, ha az enum típusú értékhez switch operátort használsz értékhez társított értékek nélkül, a fordító megköveteli, hogy minden lehetséges enum esetet lefedj, hogy a switch kimerítő legyen. Ez azt jelenti, hogy felsorolod az összes enum variánst, vagy hozzáadsz egy default ágat.

Ha nem feded le az összes variánst, és nem adsz hozzá default-ot, a kód nem fog fordulni.

Példa:

enum Direction {
    case north, south, east, west
}

func move(_ dir: Direction) {
    switch dir {
    case .north:
        print("Észtünk északra")
    case .south:
        print("Észtünk délre")
    case .east:
        print("Észtünk keletre")
    case .west:
        print("Észtünk nyugatra")
    }
}

Ha nem szeretnéd felsorolni az összes variánst, hozzáadhatsz egy default-ot:

switch dir {
case .north:
    print("Észtünk északra")
default:
    print("Más irány")
}