Sobes.tech
Junior — Middle

Kas on kohustuslik katta kõik võimalikud enum väärtused Swiftis switch käsu puhul?

sobes.tech AI

Vastus AI-lt

Swiftis, kui kasutate switch operaatorit väärtuse jaoks enum-tüüpi ilma seotud väärtusteta, nõuab kompilaator, et katate kõik võimalikud enum juhtumid, et switch oleks täielik (exhaustive). See tähendab, et peate kas loetlema kõik enum variandid või lisama default-haara.

Kui te ei kata kõiki variante ja ei lisa defaulti, ei kompileeri kood.

Näide:

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

func move(_ dir: Direction) {
    switch dir {
    case .north:
        print("Läheme põhja")
    case .south:
        print("Läheme lõuna")
    case .east:
        print("Läheme ida")
    case .west:
        print("Läheme läände")
    }
}

Kui te ei soovi kõiki variante loetleda, võite lisada default:

switch dir {
case .north:
    print("Läheme põhja")
default:
    print("Muu suund")
}