Sobes.tech
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.

  • map wendet eine Funktion auf alle Elemente an und gibt ein Array mit den Ergebnissen zurück, einschließlich nil, wenn die Funktion ein Optional zurückgibt.
  • compactMap wendet die Funktion an und verwirft automatisch alle nil-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.