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