Junior — Middle
Was ist der Unterschied zwischen der Verwendung von map und compactMap bei der Verarbeitung von Sammlungen?
sobes.tech KI
Antwort von AI
Die Methoden map und compactMap werden verwendet, um Elemente einer Sammlung zu transformieren, unterscheiden sich jedoch darin, wie sie mit optionalen Werten umgehen.
mapwendet eine Funktion auf alle Elemente an und gibt ein Array mit den Ergebnissen zurück, einschließlichnil, wenn die Funktion ein Optional zurückgibt.compactMapwendet die Funktion an und verwirft automatisch allenil-Werte, sodass nur nicht-nil-Elemente im Array verbleiben.
Beispiel:
let numbers = ["1", "2", "three", "4"]
// map gibt [Int?]
let mapped = numbers.map { Int($0) } // [1, 2, nil, 4]
// compactMap gibt [Int], wobei nil verworfen wird
let compactMapped = numbers.compactMap { Int($0) } // [1, 2, 4]
Verwenden Sie compactMap, wenn Sie transformieren und gleichzeitig ungültige oder fehlende Werte entfernen möchten.