Sobes.tech
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, flatMapfilterMap metodlarından istifadə olunur, lakin onların məqsədləri fərqlidir:

  • map hə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]