Sequence/Collection hiyerarşileri
Sequence ile Collection arasındaki farkı (ayrıca Bidirectional/RandomAccess) anlayın: dolaşım güvenceleri, dizinler ve algoritmaların ne zaman daha güçlü protokoller gerektirdiği.
Sequence/Collection hiyerarşileri, CoddyKit'te ücretsiz bir Swift Academy dersidir. Bu, 3 dersinin 1. 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.
Hiyerarşi haritası
Yineleme katmanı:
- Sequence: yineleyici üzerinden yineleme (tek geçişli olabilir).
- Collection: birden çok geçiş, dizinlenebilir yapı (startIndex/endIndex).
- BidirectionalCollection: dizinleri geriye doğru taşıyabilir.
- RandomAccessCollection: sabit zamanlı dizin adımlarını destekler.
Sequence ile yineleme
Sequence, öğeleri sırayla yineleyebilmenizi garanti eder; dizinler veya birden çok geçiş hakkında başka bir koşul getirmez.
let seq = [1, 2, 3] as AnySequence<Int> // wrap as AnySequence for demo
for x in seq { print(x, terminator: " ") }
print("")Collection dizinleri
Collection, dizinleri ekler ve birden çok geçişli dolaşmaya izin verir. Güvenli biçimde yeniden yineleme yapabilirsiniz.
let arr = ["a","b","c"] // Array is a Collection
print(arr.startIndex == 0) // true for Array
print(arr.endIndex == 3) // endIndex is "one past last"
for i in arr.indices { print(arr[i], terminator: " ") }
print("")
// Iterate again (multi-pass)
for ch in arr { print(ch, terminator: " ") }
print("")Daha güçlü yetenekler
BidirectionalCollection, dizinleri geriye doğru taşıyabilir. RandomAccessCollection, sabit zamanlı dizin adımlarını destekler (örneğin Array).
let text = "Swift" // String is a BidirectionalCollection
var i = text.index(before: text.endIndex) // move backward
print(text[i]) // last character
// Array is RandomAccessCollection: jumping indices is cheap
let nums = [10,20,30,40]
print(nums[nums.startIndex.advanced(by: 2)]) // 30Özel Sequence
Özel bir Sequence tek geçişli olabilir. Bir kez yineleme yaptıktan sonra yineleyici tükenebilir.
struct Countdown: Sequence, IteratorProtocol {
var current: Int
mutating func next() -> Int? {
guard current >= 0 else { return nil }
defer { current -= 1 }
return current
}
}
var cd = Countdown(current: 3)
for n in cd { print(n, terminator: " ") } // 3 2 1 0
print("")
// cd is exhausted; iterating again yields nothing (single-pass behavior)Doğru protokolü seçme
Yönergeler:
- Tek geçiş yeterliyse Sequence üzerinde jenerik algoritmalar kullanınız.
- Birden çok geçiş veya dizin işlemleri için Collection gerektiriniz.
- Sık sık dizinler arasında sıçrayan algoritmalar (örneğin ikili arama) için RandomAccessCollection kullanmayı tercih ediniz.
Collection ve Sequence
Kısa kontrol: Collection, Sequence üzerine ne ekler?
Özet
Özet: Sequence → temel yineleme. Collection → dizinler + birden çok geçiş. Bidirectional → geriye hareket. RandomAccess → sabit zamanlı dizin adımları. Algoritmanıza uyan en küçük protokolü seçiniz.
Sıkça Sorulan Sorular
“Sequence/Collection hiyerarşileri” dersi ücretsiz mi?
Evet — “Sequence/Collection hiyerarşileri” 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.
“Sequence/Collection hiyerarşileri” dersinde ne öğreneceğim?
Sequence ile Collection arasındaki farkı (ayrıca Bidirectional/RandomAccess) anlayın: dolaşım güvenceleri, dizinler ve algoritmaların ne zaman daha güçlü protokoller gerektirdiği. 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 1. dersidir.
“Sequence/Collection hiyerarşileri” 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ı