flatMap ve Zincirleme
İç içe koleksiyonları düzleştirin ve dönüşümleri zincirleyin.
flatMap ve Zincirleme, CoddyKit'te ücretsiz bir Swift Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Swift Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Swift Academy kursu toplamda 4 dersten oluşur.
flatMap'in İki Yüzü
Bir dizi üzerinde flatMap, iç içeliğin bir düzeyini düzleştirir. Her öğe için bir dizi döndüren bir kapanış uygular ve ardından bu dizilerin tümünü tek bir düz dizi halinde birleştirir.
İç İçe Dizileri Düzleştirme
Dizi dizisini tek bir diziye dönüştürün:
let nested = [[1, 2], [3, 4], [5]]
let flat = nested.flatMap { $0 }
print(flat) // [1, 2, 3, 4, 5]Dizi Üreten flatMap
Her öğe birden çok öğeye genişleyebilir:
let nums = [1, 2, 3]
let expanded = nums.flatMap { [$0, $0 * 10] }
print(expanded) // [1, 10, 2, 20, 3, 30]Her Kombinasyonu Eşleştirme
flatMap, kartezyen çarpımlar için kullanışlıdır:
let suits = ["Hearts", "Spades"]
let ranks = ["A", "K"]
let deck = suits.flatMap { suit in ranks.map { "\($0) of \(suit)" } }
print(deck) // ["A of Hearts", "K of Hearts", "A of Spades", "K of Spades"]flatMap ve compactMap
Geçmişte flatMap isteğe bağlı değerleri de açıyordu, ancak bu rol compactMap'e geçti. Günümüzde:
flatMap— iç içe dizileri düzleştirircompactMap— isteğe bağlı sonuçlardakinildeğerlerini atar
Sözcükleri Karakterlere Düzleştirme
Her dizeyi karakterlerine genişletin:
let words = ["hi", "yo"]
let chars = words.flatMap { Array($0) }
print(chars) // ["h", "i", "y", "o"]Alt Sonuçları Birleştirme
İç içe model nesnelerindeki öğeleri toplayın:
struct Team { let members: [String] }
let teams = [Team(members: ["Ann", "Bo"]), Team(members: ["Cy"])]
let all = teams.flatMap { $0.members }
print(all) // ["Ann", "Bo", "Cy"]Dönüşümleri Zincirleme
Asıl güç zincirlemeden gelir: map, filter, flatMap ve reduce, yukarıdan aşağıya bir veri hattı olarak okunur. Her adım, sonraki adım için yeni bir dizi üretir.
Tam Veri Hattı
Filtreleyin, düzleştirin, dönüştürün ve ardından toplayın:
let groups = [[1, 2, 3], [4, 5], [6]]
let result = groups
.flatMap { $0 }
.filter { $0 % 2 == 0 }
.map { $0 * $0 }
.reduce(0, +)
print(result) // 4 + 16 + 36 = 56flatMap Sonra compactMap
Önce düzleştirin, ardından yalnızca ayrıştırılabilen değerleri tutun:
let rows = [["1", "x"], ["3", "4"]]
let nums = rows
.flatMap { $0 }
.compactMap { Int($0) }
print(nums) // [1, 3, 4]Zincirleri Okunabilir Tutma
Her adımı kendi satırına yerleştirin ve zincir uzadığında ara sonuçları adlandırın. Her şeyi tek bir ifadeye sığdırmaktan daha önemli olan okunabilirliktir.
let names = ["ann", "BO", "cy"]
let titled = names
.map { $0.lowercased() }
.map { $0.capitalized }
.sorted()
print(titled) // ["Ann", "Bo", "Cy"]Hızlı Kontrol
[[1, 2], [3]].flatMap { $0 } ne döndürür?
Özet
Düzleştirme ve zincirlemeyi öğrendiniz:
flatMap, iç içe dizilerin bir düzeyini düzleştirir- İsteğe bağlı değerleri atmak için flatMap değil,
compactMapkullanın - Okunabilir veri hatları oluşturmak için
filter/map/flatMap/reduceişlemlerini zincirleyin - Her satıra bir adım yerleştirmek uzun zincirleri anlaşılır tutar
Kurs tamamlandı! Sırada gecikmeli diziler var.
Sıkça Sorulan Sorular
“flatMap ve Zincirleme” dersi ücretsiz mi?
Evet — “flatMap ve Zincirleme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Swift Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Swift Academy kursu toplamda 4 dersten oluşur.
“flatMap ve Zincirleme” dersinde ne öğreneceğim?
İç içe koleksiyonları düzleştirin ve dönüşümleri zincirleyin. Swift Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Swift Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Swift Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“flatMap ve Zincirleme” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Swift Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Swift Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- map ve compactMap
- filter ve Koşul Belirteçleri
- reduce ve reduce(into:)
- flatMap ve Zincirleme