Junior — Middle
არის აუცილებელი Swift-ში switch ოპერატორში enum-ის ყველა შესაძლო მნიშვნელობის დაფარვა?
sobes.tech AI
პასუხი AI-სგან
Swift-ში, თუ თქვენ იყენებთ switch ოპერატორს enum ტიპის მნიშვნელობისთვის без დაკავშირებული მნიშვნელობების, კომპილატორი მოითხოვს დაფაროს ყველა შესაძლო შემთხვევა enum-ის, რათა switch იყოს სრული (exhaustive). ეს ნიშნავს, რომ ან უნდა ჩამოთვალოთ ყველა ვარიანტი enum-ის, ან დაამატოთ 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("სხვა მიმართულებით")
}