Junior — Middle
Koleksiyonları işlerken map, flatMap ve filterMap yöntemleri arasındaki farklar nelerdir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Diziler üzerinde işlem yapmak için map, flatMap ve filterMap yöntemleri kullanılır, ancak farklı amaçlara hizmet ederler:
-
mapher öğeyi başka bir öğeye dönüştürür ve aynı sayıda öğe içeren bir dizi döndürür. -
flatMap, önce her öğe için bir dizi döndüren bir fonksiyon uygular ve ardından sonucu tek bir düz diziye "düzleştirir". Bu, bir öğeden birkaç tane elde etmek istediğinizde kullanışlıdır. -
filterMap(bazı dillerde veya kütüphanelerde, örneğin Swift'te) filtreleme ve dönüşümü birleştirir: fonksiyon opsiyonel bir değer döndürür ve yalnızca boş olmayan sonuçlar nihai diziye alınır.
Swift'te örnek:
let numbers = [1, 2, 3, 4]
// map: her öğeyi 2 ile çarp
let mapped = numbers.map { $0 * 2 } // [2, 4, 6, 8]
// flatMap: her sayı için, öğe ve karesini içeren bir dizi döndürür
let flatMapped = numbers.flatMap { [$0, $0 * $0] } // [1, 1, 2, 4, 3, 9, 4, 16]
// filterMap (Swift'te compactMap): dizeleri Int'e dönüştürür, nil olanları atlar
let strings = ["1", "two", "3"]
let filteredMapped = strings.compactMap { Int($0) } // [1, 3]