0Pricing
Swift Academy · Lektion

flatMap und Verkettung

Flachen Sie verschachtelte Collections ab und verketten Sie Transformationen.

flatMap und Verkettung ist eine kostenlose Swift Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Swift Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.

Die zwei Seiten von flatMap

flatMap auf einer Sequenz flacht eine Verschachtelungsebene ab. Es wendet eine Closure an, die für jedes Element eine Sequenz zurückgibt, und verkettet anschließend alle diese Sequenzen zu einem einzigen flachen Array.

Verschachtelte Arrays abflachen

Ein Array aus Arrays in ein einzelnes Array umwandeln:

let nested = [[1, 2], [3, 4], [5]]
let flat = nested.flatMap { $0 }
print(flat)  // [1, 2, 3, 4, 5]

flatMap mit Sequenz-Ergebnissen

Jedes Element kann zu mehreren Elementen erweitert werden:

let nums = [1, 2, 3]
let expanded = nums.flatMap { [$0, $0 * 10] }
print(expanded)  // [1, 10, 2, 20, 3, 30]

Jede Kombination bilden

flatMap ist praktisch für kartesische Produkte:

let suits = ["Hearts", "Spades"]
let ranks = ["A", "K"]
let deck = suits.flatMap { suit in ranks.map { "\($0) of \(suit)" } }
print(deck)  // ["A of Hearts", "K of Hearts", "A of Spades", "K of Spades"]

flatMap und compactMap

Früher hat flatMap auch Optionals entpackt, diese Aufgabe wurde jedoch an compactMap übertragen. Heute gilt:

  • flatMap – verschachtelte Sequenzen abflachen
  • compactMap – nil aus optionalen Ergebnissen entfernen

Wörter in Zeichen abflachen

Jeden String in seine Zeichen aufteilen:

let words = ["hi", "yo"]
let chars = words.flatMap { Array($0) }
print(chars)  // ["h", "i", "y", "o"]

Teilergebnisse zusammenführen

Elemente aus verschachtelten Model-Objekten sammeln:

struct Team { let members: [String] }
let teams = [Team(members: ["Ann", "Bo"]), Team(members: ["Cy"])]
let all = teams.flatMap { $0.members }
print(all)  // ["Ann", "Bo", "Cy"]

Transformationen verketten

Die eigentliche Stärke entsteht durch Verkettungen: map, filter, flatMap und reduce lesen sich von oben nach unten wie eine Datenpipeline. Jeder Schritt erzeugt eine neue Sequenz für den nächsten.

Eine vollständige Pipeline

Filtern, abflachen, transformieren und anschließend summieren:

let groups = [[1, 2, 3], [4, 5], [6]]
let result = groups
    .flatMap { $0 }
    .filter { $0 % 2 == 0 }
    .map { $0 * $0 }
    .reduce(0, +)
print(result)  // 4 + 16 + 36 = 56

flatMap und danach compactMap

Zuerst abflachen und anschließend nur die parsbaren Werte behalten:

let rows = [["1", "x"], ["3", "4"]]
let nums = rows
    .flatMap { $0 }
    .compactMap { Int($0) }
print(nums)  // [1, 3, 4]

Verkettungen lesbar halten

Platzieren Sie jeden Schritt in einer eigenen Zeile und benennen Sie Zwischenergebnisse, wenn eine Verkettung lang wird. Lesbarkeit ist wichtiger, als alles in einen einzigen Ausdruck zu quetschen.

let names = ["ann", "BO", "cy"]
let titled = names
    .map { $0.lowercased() }
    .map { $0.capitalized }
    .sorted()
print(titled)  // ["Ann", "Bo", "Cy"]

Kurztest

Was gibt [[1, 2], [3]].flatMap { $0 } zurück?

Zusammenfassung

Sie haben das Abflachen und Verketten kennengelernt:

  • flatMap flacht eine Ebene verschachtelter Sequenzen ab
  • Verwenden Sie compactMap und nicht flatMap, um Optionals zu entfernen
  • Verketten Sie filter / map / flatMap / reduce zu lesbaren Pipelines
  • Ein Schritt pro Zeile hält lange Verkettungen übersichtlich

Kurs abgeschlossen! Als Nächstes: Lazy-Sequenzen.

Häufig gestellte Fragen

Ist die Lektion „flatMap und Verkettung“ kostenlos?

Ja — der vollständige Text von „flatMap und Verkettung“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Swift Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „flatMap und Verkettung“?

Flachen Sie verschachtelte Collections ab und verketten Sie Transformationen. Du übst Swift Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Swift Academy zu starten?

Keine Vorkenntnisse erforderlich. Swift Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „flatMap und Verkettung“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Swift Academy-Lektion Code schreiben und ausführen?

Ja. Jede Swift Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. map und compactMap
  2. filter und Prädikate
  3. reduce und reduce(into:)
  4. flatMap und Verkettung
← Zurück zu Swift Academy