Transformation med map og filter
Tilpas værdier, mens de flyder downstream.
Transformation med map og filter er en gratis SwiftUI Academy-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i SwiftUI Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. SwiftUI Academy-kurset indeholder 4 lektioner i alt.
Operatorer ændrer strømme
Mellem en publisher og dens subscriber kan du indsætte operatorer, der transformerer værdier, mens de bevæger sig nedstrøms.
map transformerer hver værdi
Operatoren map kører en closure på hver værdi og udsender resultatet, så strømmens form ændres.
[1, 2, 3].publisher
.map { $0 * 10 }map kan ændre typen
Fordi map returnerer det, du ønsker, kan Output-typen ændres, f.eks. ved at omdanne tal til strenge.
[1, 2].publisher
.map { "Item \($0)" }filter fjerner værdier
Operatoren filter beholder kun de værdier, hvis closure returnerer true, og kasserer resten uden videre.
[1, 2, 3, 4].publisher
.filter { $0 % 2 == 0 }Kædning af operatorer
Operatorer kan kombineres på en enkel måde: kæd filter og derefter map for først at indsnævre strømmen og derefter ændre dens form.
.filter { $0 > 0 }
.map { $0 * 2 }Rækkefølgen betyder noget
Hver operator ser kun outputtet fra operatoren ovenfor, så en ændring af rækkefølgen for map og filter kan ændre resultatet ubemærket.
compactMap fjerner nil
Brug compactMap, når din transformation kan returnere nil, så fjerner Combine de tomme resultater for dig.
["1", "x", "3"].publisher
.compactMap { Int($0) }removeDuplicates
Operatoren removeDuplicates udsender kun en værdi, når den er forskellig fra den foregående.
subject.removeDuplicates()scan akkumulerer
Operatoren scan viderefører et løbende resultat og udsender en opdateret total for hver værdi, f.eks. en løbende sum.
.scan(0) { total, next in total + next }Læsbare datapipelines
En pipeline, der læses oppefra og ned, fortæller en historie: Det er her, den deklarative styrke i operatorer kommer til sin ret.
.filter { !$0.isEmpty }
.map { $0.uppercased() }Rene transformationer
Hold operatorernes closures rene: Undgå bivirkninger, så hver værdi transformeres forudsigeligt, og tests forbliver enkle.
Hurtigt tjek
En strøm udsender 1, 2, 3, 4. Hvad bliver udsendt efter .filter { $0 % 2 == 0 }.map { $0 * 10 }?
Opsummering: Formning af flowet
Du har lært at ændre strømmes form: map transformerer, filter indsnævrer, og compactMap fjerner nil-værdier. ✨
Lær Swift med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 30
- Lektioner
- 120
Ofte stillede spørgsmål
Er lektionen “Transformation med map og filter” gratis?
Ja — hele teksten til “Transformation med map og filter” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af SwiftUI Academy-kurset, skal du opgradere til CoddyKit PRO. SwiftUI Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Transformation med map og filter”?
Tilpas værdier, mens de flyder downstream. Du øver dig i SwiftUI Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på SwiftUI Academy?
Der kræves ingen tidligere erfaring. SwiftUI Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.
Hvor lang tid tager lektionen “Transformation med map og filter”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne SwiftUI Academy-lektion?
Ja. Alle SwiftUI Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Publishers og subscribers
- Transformation med map og filter
- Debounce til livesøgning
- Integration af Combine i SwiftUI