Junior — Middle
Kolleksiyaları işləyərkən map, flatMap və filterMap metodları arasındakı fərqlər nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Kolleksiyaların işlənməsi üçün map, flatMap və filterMap metodlarından istifadə olunur, lakin onların məqsədləri fərqlidir:
-
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 çox əldə etmək istədiyinizdə 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]