Was sind die Unterschiede zwischen den Methoden map, flatMap und filterMap bei der Verarbeitung von Sammlungen?
sobes.tech KI
Antwort von AI
Die Methoden map, flatMap und filterMap werden zur Verarbeitung von Sammlungen verwendet, haben jedoch unterschiedliche Zwecke:
-
mapwandelt jedes Element der Sammlung in ein anderes Element um und gibt eine Sammlung mit der gleichen Anzahl von Elementen zurück. -
flatMapwendet zunächst eine Funktion an, die für jedes Element eine Sammlung zurückgibt, und "glättet" dann das Ergebnis in eine einzige flache Sammlung. Dies ist nützlich, wenn man aus einem Element mehrere erhalten möchte. -
filterMap(in einigen Sprachen oder Bibliotheken, z.B. Swift) kombiniert Filterung und Transformation: Die Funktion gibt einen optionalen Wert zurück, und nur nicht-leere Ergebnisse werden in die endgültige Sammlung aufgenommen.
Beispiel in Swift:
let numbers = [1, 2, 3, 4]
// map: multipliziert jedes Element mit 2
let mapped = numbers.map { $0 * 2 } // [2, 4, 6, 8]
// flatMap: für jede Zahl wird ein Array mit dem Element und seinem Quadrat zurückgegeben
let flatMapped = numbers.flatMap { [$0, $0 * $0] } // [1, 1, 2, 4, 3, 9, 4, 16]
// filterMap (compactMap in Swift): wandelt Strings in Int um, wobei nil verworfen wird
let strings = ["1", "two", "3"]
let filteredMapped = strings.compactMap { Int($0) } // [1, 3]