Sobes.tech
Junior — Middle

Kā atšķiras map un compactMap metožu izmantošana kolekciju apstrādē?

sobes.tech AI

Atbilde no AI

Metodes map un compactMap tiek izmantotas kolekcijas elementu pārveidošanai, bet atšķiras ar to, kā tās apstrādā opcionalās vērtības.

  • map piemēro funkciju visiem elementiem un atgriež rezultātu masīvu, ieskaitot nil, ja funkcija atgriež opcionalo vērtību.
  • compactMap piemēro funkciju un automātiski noraida visus nil vērtības, atgriežot tikai ar ne-nil` elementiem pilnu masīvu.

Piemērs:

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

// map atgriež [Int?]
let mapped = numbers.map { Int($0) } // [1, 2, nil, 4]

// compactMap atgriež [Int], noraidot `nil`
let compactMapped = numbers.compactMap { Int($0) } // [1, 2, 4]

Izmantojiet compactMap, ja vēlaties pārveidot un vienlaikus izņemt nederīgas vai trūkstošas vērtības.