Sobes.tech
Junior — Middle

Este obligatoriu să acoperi toate valorile posibile ale unui enum într-o instrucțiune switch în Swift?

sobes.tech AI

Răspuns de la AI

În Swift, dacă utilizați operatorul switch pentru o valoare de tip enum fără valori asociate, compilatorul necesită acoperirea tuturor cazurilor posibile ale enum-ului pentru ca switch-ul să fie exhaustiv. Aceasta înseamnă că trebuie să enumerați toate variantele enum-ului sau să adăugați o ramură default.

Dacă nu acoperiți toate variantele și nu adăugați un default, codul nu va fi compilat.

Exemplu:

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

func move(_ dir: Direction) {
    switch dir {
    case .north:
        print("Mergem spre nord")
    case .south:
        print("Mergem spre sud")
    case .east:
        print("Mergem spre est")
    case .west:
        print("Mergem spre vest")
    }
}

Dacă nu doriți să enumerați toate variantele, puteți adăuga un default:

switch dir {
case .north:
    print("Mergem spre nord")
default:
    print("Altă direcție")
}