Sobes.tech
Junior — Middle

Անհրաժեշտ է արդյոք ծածկել բոլոր հնարավոր enum արժեքները Swift-ում switch օպերատորում?

sobes.tech AI

Պատասխան AI-ից

Swift-ում, եթե դուք օգտագործում եք switch օպերատորը առանց կապված արժեքների enum տիպի արժեքի համար, կոմպիլյատորը պահանջում է ծածկել enum-ի բոլոր հնարավոր դեպքերը, որպեսզի switch-ը լինի լրիվ (exhaustive): Դա նշանակում է, որ դուք պետք է կամ նշեք բոլոր enum տարբերակները, կամ ավելացնեք default ճյուղը:

Եթե դուք չեք ծածկում բոլոր տարբերակները և default չեք ավելացնում, կոդը չի կ compile:

Օրինակ՝

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("Այլ ուղղություն")
}