Sobes.tech
Junior — Middle

Kolleksiyalarni qayta ishlashda map, flatMap va filterMap metodlari orasidagi farqlar nima?

sobes.tech AI

AIdan javob

Metodlar map, flatMapfilterMap kolleksiyaları emal etmək üçün istifadə olunur, lakin müxtəlif məqsədlərə xidmət edir:

  • 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 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]