Sobes.tech
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]