Map/Filter/Reduce, tembel diziler
Dönüştürmek, seçmek ve birleştirmek için map / filter / reduce kullanın; ardından işlemi ertelemek ve ara dizilerden kaçınmak için .lazy ekleyin.
Map/Filter/Reduce, tembel diziler, CoddyKit'te ücretsiz bir Swift Academy dersidir. Bu, 3 dersinin 2. 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 3 dersten oluşur.
Temel fikir
Temel algoritmalar:
- map: her öğeyi dönüştürür
- filter: bir koşula uyan öğeleri tutar
- reduce: tek bir değerde birleştirir
- .lazy: geçici dizilerden kaçınmak için işi erteler
map
map, her öğeyi dönüştürür ve yeni bir dizi döndürür.
let nums = [1, 2, 3]
let doubled = nums.map { $0 * 2 } // [2, 4, 6]
print(doubled)
let words = ["swift", "kit"]
let upper = words.map { $0.uppercased() } // ["SWIFT","KIT"]
print(upper)filter
filter, koşulun doğru sonuç verdiği öğeleri tutar.
let scores = [45, 72, 88, 53]
let passing = scores.filter { $0 >= 60 } // [72, 88]
print(passing)
let names = ["Ana","Li","Max"]
let short = names.filter { $0.count <= 2 } // ["Li"]
print(short)reduce
reduce, bir başlangıç değeri ve birleştirici kapanış kullanarak bir diziyi tek bir sonuca indirger.
let total = [1,2,3,4].reduce(0) { acc, x in acc + x } // 10
print(total)
let joined = ["a","b","c"].reduce("") { $0 + $1 } // "abc"
print(joined)İsteğe bağlı tembel çalışma
.lazy, ertelenmiş bir işlem hattı oluşturur: işlemler, öğeleri tükettiğiniz sırada çalışır (örneğin prefix, first veya yineleme aracılığıyla).
let range = 1...10
let lazyPipeline = range.lazy
.map { x in print("map", x); return x * x }
.filter { x in print("filter", x); return x % 2 == 0 }
// Only the first 3 results are needed:
let firstThree = Array(lazyPipeline.prefix(3))
print("result:", firstThree)
// Notice how only the work needed for 3 elements ran.İpuçları
İpuçları:
- Açık veri akışları için map → filter → reduce zinciri oluşturunuz.
- Bir işlem hattının yalnızca bir bölümünü tüketiyorsanız veya geçici değerlerden kaçınmak istiyorsanız .lazy ekleyiniz.
- Somut bir diziye ihtiyacınız olduğunda yalnızca
Array(...)ile somutlaştırınız.
.lazy semantiği
Kısa kontrol: .lazy, bir map/filter zincirini nasıl etkiler?
Özet
Özet: Dönüştürmek için map, seçmek için filter, birleştirmek için reduce kullanınız. İsteğe bağlı değerlendirme ve daha az bellek ayırma için .lazy ekleyiniz.
Sıkça Sorulan Sorular
“Map/Filter/Reduce, tembel diziler” dersi ücretsiz mi?
Evet — “Map/Filter/Reduce, tembel diziler” 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 3 dersten oluşur.
“Map/Filter/Reduce, tembel diziler” dersinde ne öğreneceğim?
Dönüştürmek, seçmek ve birleştirmek için map / filter / reduce kullanın; ardından işlemi ertelemek ve ara dizilerden kaçınmak için .lazy ekleyin. 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, 3 dersinin 2. dersidir.
“Map/Filter/Reduce, tembel diziler” 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
- Sequence/Collection hiyerarşileri
- Map/Filter/Reduce, tembel diziler
- Özel yineleyiciler ve performans ipuçları