Programlama dillerinde flatMap ve compactMap işlemleri arasındaki farkları açıklayabilir misiniz?
sobes.tech yapay zeka
AI'dan gelen yanıt
Swift gibi programlama dillerinde, flatMap ve compactMap koleksiyonları dönüştürmek için kullanılır, ancak farklı amaçlara sahiptir:
-
flatMap, koleksiyonun öğelerini koleksiyonlara dönüştürmek ve ardından sonucu tek seviyeye "düzleştirmek" (flatten) için kullanılır. Örneğin, her öğe bir diziye dönüştürülürse,flatMapbu dizileri tek bir diziye birleştirir. -
compactMap, koleksiyonun öğelerini dönüştürürken aynı zamanda tümnil(veya eksik) değerleri atar. Bu, dönüşümün opsiyonel bir değer döndürebileceği durumlarda ve yalnızca boş olmayan sonuçlara sahip bir dizi elde etmek istendiğinde kullanışlıdır.
Swift'te örnek:
let numbers = ["1", "2", "three", "4"]
// compactMap, dizeleri Int'e dönüştürür ve sayısal olmayanları atar
let ints = numbers.compactMap { Int($0) } // [1, 2, 4]
// flatMap ile diziler
let nested = [[1, 2], [3, 4], [5]]
let flat = nested.flatMap { $0 } // [1, 2, 3, 4, 5]
Bu şekilde, compactMap filtreler ve dönüştürür, flatMap ise iç içe dizileri dönüştürmeden sonra birleştirir.