0Pricing
Swift Academy · Lekcja

Wzorzec optional w switch i for

Dopasowywanie wartości optional za pomocą wzorców case let.

Wzorzec optional w switch i for to bezpłatna lekcja Swift Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Swift Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Swift Academy zawiera 4 lekcji w sumie.

Wartości opcjonalne w switch

Można bezpośrednio użyć wartości opcjonalnej w switch. Przypadki .some(value) i .none dopasowują odpowiednio obecną wartość lub nil.

let value: Int? = 7
switch value {
case .some(let n):
    print("Got \(n)")
case .none:
    print("Nothing")
}

Wzorzec skrócony z ?

Zapis case let x? jest skróconą formą .some(x). Końcowy znak ? oznacza „rozpakuj do x”.

let value: String? = "Swift"
switch value {
case let text?:
    print(text.uppercased())
case nil:
    print("none")
}

Bezpośrednie dopasowanie nil

Przypadek nil można dopasować za pomocą literału nil zamiast .none, co brzmi bardziej naturalnie.

let value: Int? = nil
switch value {
case let n?:
    print(n)
case nil:
    print("no value")
}

Dopasowywanie konkretnych wartości

Można łączyć konkretne rozpakowane wartości z ogólnym wzorcem rozpakowywania.

let status: Int? = 404
switch status {
case 200?:
    print("OK")
case 404?:
    print("Not Found")
case let code?:
    print("Other: \(code)")
case nil:
    print("No status")
}

for case let w pętlach

Podczas iterowania po wartościach opcjonalnych instrukcja for case let x? in array automatycznie pomija elementy nil i rozpakowuje pozostałe.

let items: [Int?] = [1, nil, 3, nil, 5]
for case let n? in items {
    print(n)
}

Jak działa filtrowanie przez for case

Wzorzec case let n? dopasowuje tylko elementy różne od nil, dlatego ciało pętli wykonuje się wyłącznie dla obecnych wartości.

let names: [String?] = ["Ann", nil, "Bo"]
for case let name? in names {
    print(name.count)
}

Równoważna forma z if let

Ten sam efekt można osiągnąć za pomocą if let wewnątrz zwykłej pętli, ale for case let x? jest bardziej zwięzłe.

let items: [Int?] = [2, nil, 4]
for item in items {
    if let item {
        print(item)
    }
}

Dopasowywanie opcjonalnych wartości enum

Wzorzec wartości opcjonalnej można łączyć z innymi wzorcami, na przykład dopasowując konkretne wartości wewnątrz wartości opcjonalnej.

let codes: [Int?] = [1, 2, nil, 3]
for case let c? in codes where c % 2 == 1 {
    print("odd: \(c)")
}

where z for case

Do pętli for case można dodać klauzulę where, aby po rozpakowaniu zastosować dodatkowe filtrowanie.

let scores: [Int?] = [40, nil, 80, 95]
for case let s? in scores where s >= 80 {
    print("high: \(s)")
}

Switch z where

W switch użytym dla wartości opcjonalnej rozpakowane wiązanie można dodatkowo ograniczyć za pomocą klauzuli where.

let value: Int? = 12
switch value {
case let n? where n > 10:
    print("big: \(n)")
case let n?:
    print("small: \(n)")
case nil:
    print("none")
}

Dlaczego warto używać tych wzorców

Wzorce wartości opcjonalnych pozwalają obsłużyć obecne i nieobecne wartości w jednej, wyczerpującej strukturze, ograniczając rozproszone sprawdzanie nil.

let result: String? = nil
switch result {
case let r?:
    print("Value: \(r)")
case nil:
    print("Empty result")
}

Szybkie sprawdzenie

Proszę przetestować wzorce wartości opcjonalnych.

Podsumowanie: wzorce wartości opcjonalnych w switch i for

W switch należy używać case let x? (skróconej formy .some) oraz case nil, a for case let x? służy do iterowania po elementach różnych od nil i ich rozpakowywania, opcjonalnie z dodatkowymi ograniczeniami za pomocą where.

let xs: [Int?] = [10, nil, 20]
for case let x? in xs { print(x) }

Często zadawane pytania

Czy lekcja „Wzorzec optional w switch i for” jest bezpłatna?

Tak — pełny tekst „Wzorzec optional w switch i for” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Swift Academy, przejdź na CoddyKit PRO. Kurs Swift Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Wzorzec optional w switch i for”?

Dopasowywanie wartości optional za pomocą wzorców case let. Ćwiczysz Swift Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Swift Academy?

Nie wymagamy żadnego doświadczenia. Swift Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Wzorzec optional w switch i for”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Swift Academy?

Tak. Każda lekcja Swift Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. if let i skrócone wiązanie
  2. guard let do wczesnego wyjścia
  3. Wiązanie wielu wartości optional
  4. Wzorzec optional w switch i for
← Powrót do Swift Academy