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): табдил додани stringҳо ба Int, нодида гирифтани nil
let strings = ["1", "two", "3"]
let filteredMapped = strings.compactMap { Int($0) } // [1, 3]