Sobes.tech
Junior — Middle

Swiftте switch операторунда enumдин бардык мүмкүн болгон маанилерин камтуу зарурубу?

sobes.tech AI

AIден жооп

Swiftте, егер сиз ассоциативдүү маанилери жок enum түрүндөгү мааниге карата switch операторун колдонуп жатсаңыз, компилятор enumдун бардык мүмкүн болгон учурларын камтуу талабын коет, анткени switch толук (exhaustive) болушу керек. Бул, сиз бардык варианттарды тизмектөөңүз керек же 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("Башка багыт")
}