Junior — Middle
Kolleksiyalarni qayta ishlashda map, flatMap va filterMap metodlari orasidagi farqlar nima?
sobes.tech AI
AIdan javob
Metodlar map, flatMap və filterMap kolleksiyaları emal etmək üçün istifadə olunur, lakin müxtəlif məqsədlərə xidmət edir:
-
maphər elementin başqa elementə çevrilməsini təmin edir və eyni sayda elementə malik kolleksiya qaytarır. -
flatMapəvvəlcə hər element üçün kolleksiya qaytaran funksiyanı tətbiq edir və sonra nəticəni tək bir düz kolleksiya şəklində "yastılaşdırır". Bu, bir elementdən bir neçə əldə etmək istədikdə faydalıdır. -
filterMap(bəzi dillərdə və ya kitabxanalarda, məsələn, Swift-də) filtrasiya və çevirməni birləşdirir: funksiya opsional dəyər qaytarır və yalnız boş olmayan nəticələr son kolleksiyaya daxil edilir.
Swift-də nümunə:
let numbers = [1, 2, 3, 4]
// map: hər elementi 2 ilə vururuq
let mapped = numbers.map { $0 * 2 } // [2, 4, 6, 8]
// flatMap: hər ədəd üçün, element və onun kvadratını ehtiva edən array qaytarır
let flatMapped = numbers.flatMap { [$0, $0 * $0] } // [1, 1, 2, 4, 3, 9, 4, 16]
// filterMap (Swift-də compactMap): stringləri Int-ə çevirir, nil-ləri atır
let strings = ["1", "two", "3"]
let filteredMapped = strings.compactMap { Int($0) } // [1, 3]