Proqramlaşdırma dillərində flatMap və compactMap əməliyyatları arasındakı fərqləri izah edə bilərsinizmi?
sobes.tech Süni İntellekt
AI-dan cavab
Swift kimi proqramlaşdırma dillərində, flatMap və compactMap kolleksiyaları çevirmək üçün istifadə olunur, lakin onların məqsədləri fərqlidir:
-
flatMapkolleksiyanın elementlərini kolleksiyalara çevirmək və sonra nəticəni "yassi" etmək (flatten) üçün tətbiq edilir. Məsələn, hər element bir array-ə çevrilərsə,flatMapbu array-ləri birləşdirər. -
compactMapkolleksiyanın elementlərini çevirmək, eyni zamanda bütünnil(və ya mövcud olmayan) dəyərləri atmaq üçün istifadə olunur. Bu, çevirmə zamanı opsional dəyər qaytarıla bilən hallarda və yalnız boş olmayan nəticələrlə array əldə etmək istəndikdə faydalıdır.
Swift nümunəsi:
let numbers = ["1", "2", "three", "4"]
// compactMap, stringləri Int-ə çevirir və sayısal olmayanları atır
let ints = numbers.compactMap { Int($0) } // [1, 2, 4]
// flatMap array-lərlə
let nested = [[1, 2], [3, 4], [5]]
let flat = nested.flatMap { $0 } // [1, 2, 3, 4, 5]
Beləliklə, compactMap filtrləyir və çevrilir, flatMap isə iç-içə kolleksiyaları çevirdikdən sonra birləşdirir.