Sobes.tech
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("სხვა მიმართულებით")
}