0Pricing
Swift Academy · Lekcja

Wiązanie wielu wartości optional

Rozpakowywanie kilku wartości optional w jednym warunku.

Wiązanie wielu wartości optional to bezpłatna lekcja Swift Academy na CoddyKit. To lekcja 3 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.

Wiązanie kilku wartości naraz

Można rozpakować wiele wartości opcjonalnych w jednym if let, rozdzielając je przecinkami. Wszystkie muszą mieć wartość inną niż nil, aby wykonało się ciało instrukcji.

let a: Int? = 1
let b: Int? = 2
if let a, let b {
    print(a + b)
}

Wszystko albo nic

Jeśli którakolwiek wartość opcjonalna na liście to nil, cały blok zostanie pominięty. Rozpakowanie działa na zasadzie „wszystko albo nic”.

let first: String? = "Ada"
let last: String? = nil
if let first, let last {
    print("\(first) \(last)")
} else {
    print("Missing a name")
}

Pełna forma

Pełna forma używa jawnych przypisań: if let a = optA, let b = optB. Skrócona forma pomija powtarzające się nazwy.

let optX: Int? = 10
let optY: Int? = 20
if let x = optX, let y = optY {
    print(x * y)
}

Łączenie wiązań i warunków

Warunki logiczne można przeplatać z wiązaniami. Późniejsze warunki mogą korzystać z wcześniej rozpakowanych wartości.

let age: Int? = 25
if let age, age >= 18 {
    print("Adult: \(age)")
}

Zależne rozpakowywanie

Późniejsze wiązanie może zależeć od wcześniejszego, ponieważ każde wiązanie jest rozpakowywane od lewej do prawej.

let dict = ["key": "42"]
if let text = dict["key"], let number = Int(text) {
    print(number + 8)
}

Kolejność ma znaczenie

Wiązania są obliczane po kolei i stosują wykonanie warunkowe. Jeśli pierwsze się nie powiedzie, kolejne nie zostaną w ogóle obliczone.

func parse(_ s: String?) -> Int? {
    print("parsing")
    return s.flatMap { Int($0) }
}
let a: Int? = nil
if let a, let b = parse("5") {
    print(a + b)
} else {
    print("skipped")
}

Wiele wartości w guard

Ten sam styl z wartościami rozdzielonymi przecinkami działa w guard let, rozpakowując kilka wartości przed przejściem dalej.

func makeFullName(_ first: String?, _ last: String?) -> String {
    guard let first, let last else { return "Unknown" }
    return "\(first) \(last)"
}
print(makeFullName("Grace", "Hopper"))

Łączenie konwersji

Wiele wiązań świetnie nadaje się do jednoczesnego analizowania kilku danych wejściowych typu String.

let wInput = "4"
let hInput = "5"
if let w = Int(wInput), let h = Int(hInput) {
    print("Area: \(w * h)")
}

Unikanie zagnieżdżonych if let

Bez wielu wiązań trzeba byłoby zagnieżdżać bloki if let, tworząc piramidę. Forma z przecinkami spłaszcza tę strukturę.

let p: Int? = 2
let q: Int? = 3
if let p {
    if let q {
        print(p + q)
    }
}

Wersja spłaszczona

Oto ta sama logika co w poprzednim zagnieżdżonym przykładzie, zapisana płasko za pomocą pojedynczego wielokrotnego wiązania.

let p: Int? = 2
let q: Int? = 3
if let p, let q {
    print(p + q)
}

Z końcowym warunkiem

Na końcu można dodać sprawdzenie logiczne, które zweryfikuje połączony wynik.

let xs = "3"
let ys = "9"
if let x = Int(xs), let y = Int(ys), x < y {
    print("\(x) is less than \(y)")
}

Szybkie sprawdzenie

Proszę przetestować wielokrotne wiązanie wartości opcjonalnych.

Podsumowanie: wiązanie wielu wartości opcjonalnych

Można rozpakować kilka wartości opcjonalnych w jednym if let lub guard let, używając przecinków. Operacja działa na zasadzie „wszystko albo nic”, jest wykonywana od lewej do prawej, obsługuje zależne wiązania i może łączyć się z warunkami logicznymi.

let a: Int? = 1
let b: Int? = 2
if let a, let b { print(a + b) }

Często zadawane pytania

Czy lekcja „Wiązanie wielu wartości optional” jest bezpłatna?

Tak — pełny tekst „Wiązanie wielu wartości optional” 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 „Wiązanie wielu wartości optional”?

Rozpakowywanie kilku wartości optional w jednym warunku. Ć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 3 z 4.

Ile czasu zajmuje lekcja „Wiązanie wielu wartości optional”?

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