Sobes.tech
Back to questions
Junior — Middle
78

Обязательно ли покрывать все возможные значения enum в операторе switch в Swift?

Answer from AI

sobes.tech AI

В Swift, если вы используете оператор switch для значения типа enum без associated values, то компилятор требует покрыть все возможные случаи enum, чтобы switch был исчерпывающим (exhaustive). Это значит, что вы должны либо перечислить все варианты enum, либо добавить ветку default.

Если вы не покрываете все варианты и не добавляете default, код не скомпилируется.

Пример:

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

func move(_ dir: Direction) {
    switch dir {
    case .north:
        print("Идём на север")
    case .south:
        print("Идём на юг")
    case .east:
        print("Идём на восток")
    case .west:
        print("Идём на запад")
    }
}

Если вы не хотите перечислять все варианты, можно добавить default:

switch dir {
case .north:
    print("Идём на север")
default:
    print("Другое направление")
}