Sobes.tech
Junior — Middle

Коллекциялар менен иштөөдө map жана compactMap ыкмаларын колдонуу эмнеге айырмаланат?

sobes.tech AI

AIден жооп

map жана compactMap ыкмалары коллекциянын элементтерин өзгөртүү үчүн колдонулат, бирок алар опционалдуу маанилер менен иштөөдө айырмаланат.

  • map бардык элементдерге функцияны колдонуп, натыйжалардын массивин кайтарат, анын ичинде функция опционалдуу маанини кайтарса да.
  • 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 колдонуу керек, эгер сиз өзгөртүүнү каалап жатсаңыз жана бир эле учурда жараксыз же жетишпеген маанилерди жокко чыгаргыңыз келсе.