Sobes.tech
Junior — Middle

Je povinné pokrýt všechny možné hodnoty enum v příkazu switch ve Swiftu?

sobes.tech AI

Odpověď od AI

Ve Swiftu, pokud používáte operátor switch pro hodnotu typu enum bez přiřazených hodnot, kompilátor požaduje pokrytí všech možných případů enumu, aby byl switch úplný (exhaustive). To znamená, že musíte buď vyjmenovat všechny varianty enumu, nebo přidat větev default.

Pokud nebudete pokrývat všechny varianty a nepřidáte default, kód se nespustí.

Příklad:

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

func move(_ dir: Direction) {
    switch dir {
    case .north:
        print("Jdeme na sever")
    case .south:
        print("Jdeme na jih")
    case .east:
        print("Jdeme na východ")
    case .west:
        print("Jdeme na západ")
    }
}

Pokud nechcete vyjmenovat všechny varianty, můžete přidat default:

switch dir {
case .north:
    print("Jdeme na sever")
default:
    print("Jiný směr")
}