Swift Academy · Lektion

Map/Filter/Reduce och lata sekvenser

Använd map / filter / reduce för att transformera, välja ut och kombinera. Lägg sedan till .lazy för att skjuta upp arbetet och undvika mellanliggande arrayer.

Lektion 2 av 38 steg

Map/Filter/Reduce och lata sekvenser ä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.

Kärnidén

Kärnalgoritmer:

  • map: omvandlar varje element
  • filter: behåller element som matchar ett predikat
  • reduce: kombinerar till ett enda värde
  • .lazy: skjuter upp arbetet för att undvika tillfälliga arrayer

map

map omvandlar varje element och returnerar en ny array.

let nums = [1, 2, 3]
let doubled = nums.map { $0 * 2 }        // [2, 4, 6]
print(doubled)

let words = ["swift", "kit"]
let upper = words.map { $0.uppercased() } // ["SWIFT","KIT"]
print(upper)

filter

filter behåller de element där predikatet returnerar true.

let scores = [45, 72, 88, 53]
let passing = scores.filter { $0 >= 60 } // [72, 88]
print(passing)

let names = ["Ana","Li","Max"]
let short = names.filter { $0.count <= 2 } // ["Li"]
print(short)

reduce

reduce viker ihop en sekvens till ett enda resultat med hjälp av ett startvärde och en kombinerande closure.

let total = [1,2,3,4].reduce(0) { acc, x in acc + x }   // 10
print(total)

let joined = ["a","b","c"].reduce("") { $0 + $1 }             // "abc"
print(joined)

Lazy-arbete vid behov

.lazy skapar en uppskjuten pipeline: operationerna körs när ni hämtar elementen (till exempel via prefix, first eller iteration).

let range = 1...10
let lazyPipeline = range.lazy
    .map { x in print("map", x); return x * x }
    .filter { x in print("filter", x); return x % 2 == 0 }

// Only the first 3 results are needed:
let firstThree = Array(lazyPipeline.prefix(3))
print("result:", firstThree)
// Notice how only the work needed for 3 elements ran.

Tips

Tips:

  • Kedja map → filter → reduce för tydliga dataflöden.
  • Lägg till .lazy när ni bara använder en del av en pipeline eller vill undvika temporära värden.
  • Materialisera med Array(...) endast när ni behöver en konkret array.

lazy-semantik

Snabb kontroll: Vilken effekt har .lazy på en map/filter-kedja?

Sammanfattning

Sammanfattning: Använd map för att omvandla, filter för att välja och reduce för att kombinera. Lägg till .lazy för utvärdering vid behov och färre allokeringar.

Gratis att börja

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 ”Map/Filter/Reduce och lata sekvenser” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Swift Academy, inklusive ”Map/Filter/Reduce och lata sekvenser”, 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 ”Map/Filter/Reduce och lata sekvenser”?

Använd map / filter / reduce för att transformera, välja ut och kombinera. Lägg sedan till .lazy för att skjuta upp arbetet och undvika mellanliggande arrayer. 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 ”Map/Filter/Reduce och lata sekvenser”?

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

  1. Hierarkierna Sequence/Collection
  2. Map/Filter/Reduce och lata sekvenser
  3. Anpassade iteratorer och prestandatips
← Tillbaka till Swift Academy