Sobes.tech
Junior — Middle

Каква е разликата между използването на методите map и compactMap при обработка на колекции?

sobes.tech AI

Отговор от AI

Методите map и compactMap се използват за преобразуване на елементи от колекция, но се различават по начина, по който обработват опционалните стойности.

  • map прилага функция към всички елементи и връща масив с резултатите, включително nil, ако функцията връща опционална стойност.
  • compactMap прилага функцията и автоматично отхвърля всички nil стойности, връщайки масив само с не-nil елементи.

Пример:

let numbers = ["1", "2", "three", "4"]

// map връща [Int?]
let mapped = numbers.map { Int($0) } // [1, 2, nil, 4]

// compactMap връща [Int], игнорирайки nil
let compactMapped = numbers.compactMap { Int($0) } // [1, 2, 4]

Използвайте compactMap, когато искате да преобразувате и едновременно да премахнете невалидни или липсващи стойности.