Sobes.tech
Junior — Middle

Ar būtina padengti visas galimas enum reikšmes Swift switch sakinyje?

sobes.tech AI

Atsakymas iš AI

Swift'e, jei naudojate switch operatorių reikšmei iš enum tipo be susijusių reikšmių, kompiliatorius reikalauja apimti visas galimas enum atvejų, kad switch būtų išsamus (exhaustive). Tai reiškia, kad turite arba išvardyti visas enum variantus, arba pridėti default šaką.

Jei neapimsite visų variantų ir neįtrauksite default, kodas nesukompiliuos.

Pavyzdys:

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

func move(_ dir: Direction) {
    switch dir {
    case .north:
        print("Einame į šiaurę")
    case .south:
        print("Einame į pietus")
    case .east:
        print("Einame į rytus")
    case .west:
        print("Einame į vakarus")
    }
}

Jei nenorite išvardyti visų variantų, galite pridėti default:

switch dir {
case .north:
    print("Einame į šiaurę")
default:
    print("Kita kryptis")
}