Kraftfull switch med mönstermatchning
Skriv uttrycksfulla switch-satser: matcha associerade värden, intervall och tupler och lägg till where-satser. Håll grenarna fullständiga och lättlästa.
Kraftfull switch med mönstermatchning är en gratis lektion i Swift Academy på CoddyKit. Detta är lektion 2 av 3. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Swift Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Swift Academy innehåller totalt 3 lektioner.
Varför mönstermatchning?
Swifts switch matchar mönster: enum-värden med associerade data, numeriska intervall, tupler och where-villkor. Den är dessutom uttömmande.
Associerade värden
Bind associerade värden med let/var direkt i case-mönstret.
enum Network {
case success(code: Int, body: String)
case failure(message: String)
case offline
}
let r1: Network = .success(code: 200, body: "OK")
switch r1 {
case .success(let code, let body):
print("success", code, body)
case .failure(let msg):
print("fail:", msg)
case .offline:
print("offline")
}Intervallmatchning
Matcha numeriska intervall som 90...100 eller 80..<90. Använd , för att matcha flera mönster i samma case.
let score = 73
switch score {
case 90...100:
print("A")
case 80..<90:
print("B")
case 60..<80:
print("C")
case 0..<60:
print("D")
default:
print("invalid")
}Tupler och where
Matcha tupler och förfina matchningen med ett where-villkor för lättlästa geometृiliknande kontroller.
let point = (x: -2, y: 3)
switch point {
case (0, 0):
print("origin")
case (let x, 0):
print("x-axis at", x)
case (0, let y):
print("y-axis at", y)
case (let x, let y) where x > 0 && y > 0:
print("Q1:", x, y)
default:
print("somewhere else")
}Jokertecken och partiell matchning
Använd _ för att ignorera fält eller bara binda det Ni behöver. Håll grenarna små och tydliga.
enum Event {
case message(String, priority: Int)
case ping
}
let e: Event = .message("update", priority: 1)
switch e {
case .message(let text, priority: _):
print("msg:", text) // ignore priority with _
case .ping:
print("ping")
}Tips
Tips:
- Prioritera specifika fall först och använd default för den sällsynta resten.
- Bind värden med case let och förfina matchningen med where.
- Utforma enumtyper så att switch kan vara uttömmande utan en default när det är möjligt.
Switchens kraft
Snabb kontroll: Varför är Swift:s switch mer uttrycksfull?
Sammanfattning
Sammanfattning: Använd switch för att matcha mönster—bind enumvärden, rikta in Er på intervall, kombinera tupler och filtrera med where—samtidigt som matchningen förblir uttömmande.
Lär dig Swift med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 122
- Lektioner
- 409
Vanliga frågor
Är lektionen ”Kraftfull switch med mönstermatchning” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Swift Academy, inklusive ”Kraftfull switch med mönstermatchning”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Swift Academy innehåller totalt 3 lektioner.
Vad lär jag mig i ”Kraftfull switch med mönstermatchning”?
Skriv uttrycksfulla switch-satser: matcha associerade värden, intervall och tupler och lägg till where-satser. Håll grenarna fullständiga och lättlästa. Ni övar på Swift Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Swift Academy?
Du behöver inga förkunskaper. Utbildningen i Swift Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 3.
Hur lång tid tar lektionen ”Kraftfull switch med mönstermatchning”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Swift Academy-lektionen?
Ja. Varje Swift Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Grunderna i kraftfulla enums
- Kraftfull switch med mönstermatchning
- Modellering av finita tillstånd