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
- if let i skrócone wiązanie
- guard let do wczesnego wyjścia
- Wiązanie wielu wartości optional
- Wzorzec optional w switch i for