Swift Academy · leksjon

Optional-mønstre i switch og for

Match optionals med case let-mønstre.

Leksjon 4 av 413 trinn

Optional-mønstre i switch og for er en gratis leksjon i Swift Academy på CoddyKit. Dette er leksjon 4 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Swift Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Swift Academy inneholder totalt 4 leksjoner.

Optionals i switch

Du kan bruke switch direkte på en optional. Casene .some(value) og .none samsvarer med en verdi som finnes, eller med nil.

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

Mønsteret ? som kortform

Å skrive case let x? er en kortform for .some(x). Den avsluttende ? betyr «pakk ut til x».

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

Samsvare direkte med nil

Du kan samsvare med nil-caset ved å bruke bokstaven nil i stedet for .none, noe som blir mer naturlig å lese.

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

Samsvare med bestemte verdier

Du kan kombinere bestemte verdier som er pakket ut, med det generelle utpakkingsmønsteret.

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 i løkker

Når du itererer over optionals, hopper for case let x? in array automatisk over nil-elementer og pakker ut resten.

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

Slik filtrerer for case

Mønsteret case let n? samsvarer bare med elementer som ikke er nil, så løkkekroppen kjører bare for verdier som finnes.

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

Tilsvarende med if let

Du kunne oppnådd det samme med if let inne i en vanlig løkke, men for case let x? er mer kortfattet.

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

Samsvare med enum-optionals

Optional-mønsteret kan kombineres med andre mønstre, for eksempel når du skal samsvare med bestemte verdier inne i optionalen.

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

where med for case

Legg til en where-setning for å filtrere videre etter utpakking i en for case-løkke.

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

Switch med where

Inne i en switch over en optional kan den utpakkede bindingen avgrenses med en where-setning.

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")
}

Hvorfor bruke disse mønstrene

Optional-mønstre lar deg håndtere verdier som finnes og mangler i én uttømmende struktur, slik at du trenger færre spredte nil-sjekker.

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

Hurtigsjekk

Test optional-mønstre.

Oppsummering: Optional-mønstre i switch og for

Bruk case let x? (kortform for .some) og case nil i en switch, og for case let x? for å iterere over ikke-nil-elementer mens de pakkes ut. Du kan eventuelt avgrense med where.

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

Lær deg Swift med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
122
Leksjoner
409

Ofte stilte spørsmål

Er leksjonen «Optional-mønstre i switch og for» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Swift Academy, inkludert «Optional-mønstre i switch og for», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Swift Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Optional-mønstre i switch og for»?

Match optionals med case let-mønstre. Du øver på Swift Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Swift Academy?

Ingen tidligere erfaring er nødvendig. Swift Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.

Hvor lang tid tar leksjonen «Optional-mønstre i switch og for»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Swift Academy-leksjonen?

Ja. Alle Swift Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. if let og forkortet binding
  2. guard let for tidlig avslutning
  3. Binde flere optionals
  4. Optional-mønstre i switch og for
← Tilbake til Swift Academy