Junior — Middle
Коллекциялардын иштелип чыгышында map, flatMap жана filterMap ыкмаларынын айырмачылыктары эмнеде?
sobes.tech AI
AIден жооп
Коллекциялар менен иштөө үчүн map, flatMap жана filterMap ыкмалары колдонулат, бирок алардын максаттары ар башка:
-
mapар бир элементти башка элементке өзгөртөт жана ошол эле сандык менен коллекцияны кайтарат. -
flatMapбиринчи кезекте функцияны колдонуп, ар бир элемент үчүн коллекцияны кайтарат, андан соң натыйжаны бир тегиз коллекцияга "жукарат". Бул бир эле элементтен бир нече алуу керек болгондо пайдалуу. -
filterMap(кей бир тилдерде же китепканаларда, мисалы Swift) фильтрлөө жана түргө өзгөртүүнү бириктирет: функция опционалдуу маанини кайтарат, жана акыркы коллекцияга тек гана бош эмес натыйжалар кирет.
Swiftте мисал:
let numbers = [1, 2, 3, 4]
// map: ар бир элементти 2ге көбөйтөт
let mapped = numbers.map { $0 * 2 } // [2, 4, 6, 8]
// flatMap: ар бир сан үчүн, анын элемент жана квадраты бар массив кайтарат
let flatMapped = numbers.flatMap { [$0, $0 * $0] } // [1, 1, 2, 4, 3, 9, 4, 16]
// filterMap (Swiftте: compactMap): стрингдерди Intке айлантат, nilдерди өткөрүп жиберет
let strings = ["1", "two", "3"]
let filteredMapped = strings.compactMap { Int($0) } // [1, 3]