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 вақте ки мехоҳед тағир диҳед ва ҳамзамон арзишҳои нодуруст ё нопурраро хориҷ кунед.