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