0Pricing
Swift Academy · Lektion

filter und Prädikate

Wählen Sie Elemente aus, die eine Bedingung erfüllen.

filter und Prädikate ist eine kostenlose Swift Academy-Lektion auf CoddyKit. Dies ist Lektion 2 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.

Was ist filter?

filter behält nur die Elemente, für die eine Closure (ein Prädikat) true zurückgibt.

  • Die Closure gibt einen Bool-Wert zurück
  • Der Elementtyp bleibt unverändert
  • Das Ergebnis ist ein neues, möglicherweise kleineres Array

Ein einfaches filter

Nur die geraden Zahlen behalten:

let numbers = [1, 2, 3, 4, 5, 6]
let evens = numbers.filter { $0 % 2 == 0 }
print(evens)  // [2, 4, 6]

Strings filtern

Nur Wörter mit mehr als drei Zeichen behalten:

let words = ["hi", "swift", "go", "filter"]
let long = words.filter { $0.count > 3 }
print(long)  // ["swift", "filter"]

Was ist ein Prädikat?

Ein Prädikat ist einfach eine Funktion, die einen Wert entgegennimmt und einen Bool-Wert zurückgibt. filter ruft Ihr Prädikat einmal pro Element auf und behält den Wert, wenn das Prädikat true ergibt.

Ein Prädikat benennen

Prädikate können zur besseren Lesbarkeit gespeichert und wiederverwendet werden:

let isPositive: (Int) -> Bool = { $0 > 0 }
let data = [-2, 5, -1, 8]
print(data.filter(isPositive))  // [5, 8]

Bedingungen kombinieren

Verwenden Sie boolesche Operatoren innerhalb des Prädikats:

let nums = [1, 2, 3, 4, 5, 6, 7, 8]
let picked = nums.filter { $0 % 2 == 0 && $0 > 4 }
print(picked)  // [6, 8]

Structs filtern

Eine Collection von Model-Objekten anhand einer Eigenschaft filtern:

struct Product { let name: String; let price: Int }
let items = [Product(name: "Pen", price: 2), Product(name: "Bag", price: 40)]
let cheap = items.filter { $0.price < 10 }
print(cheap.map { $0.name })  // ["Pen"]

filter und map

Sie beantworten unterschiedliche Fragen: filter wählt aus, welche Elemente erhalten bleiben; map verändert jedes Element. Die Ergebnistypen unterscheiden sich:

let n = [1, 2, 3, 4]
print(n.filter { $0 > 2 })  // [3, 4]  (subset, same type)
print(n.map { $0 > 2 })     // [false, false, true, true]

filter und map verketten

Filtern Sie zuerst, um den Arbeitsaufwand zu reduzieren, und transformieren Sie anschließend:

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

Zählen, ohne Elemente zu behalten

Wenn Sie nur eine Anzahl benötigen, funktioniert filter(...).count. Mit count(where:) vermeiden Sie jedoch das Erstellen eines Arrays:

let votes = [true, false, true, true]
let yes = votes.filter { $0 }.count
print(yes)  // 3

Ein Dictionary filtern

filter auf einem Dictionary ergibt ein Dictionary mit passenden Schlüssel-Wert-Paaren:

let ages = ["Ann": 30, "Bo": 17, "Cy": 22]
let adults = ages.filter { $0.value >= 18 }
print(adults.keys.sorted())  // ["Ann", "Cy"]

Kurztest

Was muss ein filter-Prädikat zurückgeben?

Zusammenfassung

Sie haben das Filtern kennengelernt:

  • filter behält Elemente, für die das Prädikat true ergibt
  • Ein Prädikat ist jede Funktion, die einen Wert in einen Bool-Wert umwandelt
  • Der Elementtyp bleibt erhalten; das Array kann kleiner werden
  • Kombinieren Sie Bedingungen mit && / || und verketten Sie sie mit map

Als Nächstes: reduce.

Häufig gestellte Fragen

Ist die Lektion „filter und Prädikate“ kostenlos?

Ja — der vollständige Text von „filter und Prädikate“ 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 „filter und Prädikate“?

Wählen Sie Elemente aus, die eine Bedingung erfüllen. 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 2 von 4.

Wie lange dauert die Lektion „filter und Prädikate“?

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