Birincil İlişkili Türler ve Türlendirilmiş Throws
Protokol varoluşsal türlerini kısıtlayın ve Swift 6'nın türlendirilmiş hata yayılımını öğrenin.
Birincil İlişkili Türler ve Türlendirilmiş Throws, 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.
Birincil İlişkili Türler
Swift 5.7, protokollerde birincil ilişkili türler belirtmenize ve kısıtlanmış varoluşsal türler kullanmanıza olanak tanır.
protocol Container<Element> {
associatedtype Element
var items: [Element] { get }
}
struct Bag<T>: Container { var items: [T] = [] }Kısıtlanmış Varoluşsal Türler
Birincil ilişkili türlerle, varoluşsal türü daraltmak için any Container yazabilirsiniz.
func printItems(_ c: any Container<Int>) {
c.items.forEach { print($0) }
}
printItems(Bag(items: [1,2,3]))Koleksiyonlar için Kısıtlanmış Varoluşsal Türler
Collection gibi standart kitaplık protokolleri artık birincil ilişkili türleri destekler.
func first(_ c: any Collection<String>) -> String? {
c.first
}
print(first(["a","b","c"]) ?? "none")Tür Belirtilmiş Hatalara Giriş
Swift 6, bir işlevin fırlatabileceği kesin hata türünü bildirmenize olanak tanıyan tür belirtilmiş hataları kullanıma sunar.
enum NetworkError: Error { case timeout, notFound }
func fetch() throws(NetworkError) -> Data {
throw NetworkError.timeout
}Tür Belirtilmiş Hatalarla Eksiksiz Yakalama
Hata türü bilindiği için derleyici, tüm durumların eksiksiz biçimde ele alındığını doğrulayabilir.
do {
let _ = try fetch()
} catch .timeout {
print("Timed out")
} catch .notFound {
print("Not found")
}Protokollerde Tür Belirtilmiş Hatalar
Protokol gereksinimleri tür belirtilmiş bir hata fırlatabilir; böylece uyumluluk sağlayan türler kesin hata türleri sunabilir.
protocol Fetchable {
associatedtype Failure: Error
func fetch() throws(Failure) -> Data
}Tür Belirtilmiş Hatalarla Yeniden Hata Fırlatma
rethrows, tür belirtilmiş hatalarla çalışır: dış işlev, iç işlevin hata türünü iletir.
func map<T, E: Error>(_ array: [T], transform: (T) throws(E) -> T) throws(E) -> [T] {
try array.map { try transform($0) }
}Birincil AT ile Tür Belirtilmiş Hataları Birleştirme
Kesin ve tür güvenli API'ler için her iki özelliği birlikte kullanabilirsiniz.
protocol Repository<Model> {
associatedtype Model
associatedtype Failure: Error
func fetchAll() throws(Failure) -> [Model]
}Opak Tür Belirtilmiş Hatalar
throws(any Error), tür belirtilmemiş hataların eşdeğeridir ve size bir kaçış yolu sunar.
func riskyOp() throws(any Error) {
// can throw any error
}Tür Belirtilmemiş Hatalardan Tür Belirtilmiş Hatalara Geçiş
Geçiş yolu: Hata fırlatan mevcut işlevlere somut hata türünü adım adım ek açıklama olarak ekleyin.
// Before:
func load() throws -> Data { ... }
// After:
func load() throws(NetworkError) -> Data { ... }Tür Belirtilmiş Hatalar ve Eşzamansızlık
Tür belirtilmiş hatalar eşzamansızlıkla doğal biçimde bir araya gelir: async throws(E) geçerli bir sözdizimidir.
func fetchAsync() async throws(NetworkError) -> Data {
throw NetworkError.notFound
}Kısa Kontrol
Bir protokoldeki birincil ilişkili tür neyi mümkün kılar?
Ders Özeti
Birincil ilişkili türler (Swift 5.7), any Collection gibi kısıtlanmış varoluşsal türleri mümkün kılar. Tür belirtilmiş hatalar (Swift 6), eksiksiz yakalama blokları için kesin hata türleri bildirmenizi sağlar. Her iki özellik de tür güvenliğini ve API ifade gücünü artırır.
Yapay zeka eğitmeniyle Swift öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 122
- Dersler
- 409
Sıkça Sorulan Sorular
“Birincil İlişkili Türler ve Türlendirilmiş Throws” dersi ücretsiz mi?
Evet — “Birincil İlişkili Türler ve Türlendirilmiş Throws” 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.
“Birincil İlişkili Türler ve Türlendirilmiş Throws” dersinde ne öğreneceğim?
Protokol varoluşsal türlerini kısıtlayın ve Swift 6'nın türlendirilmiş hata yayılımını öğrenin. 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.
“Birincil İlişkili Türler ve Türlendirilmiş Throws” 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
- Genel Kısıtlamalar ve where Koşulları
- some Anahtar Sözcüğüyle Saydam Olmayan Türler
- any ve Tür Silme ile Varoluşsal Türler
- Birincil İlişkili Türler ve Türlendirilmiş Throws