some Anahtar Sözcüğüyle Saydam Olmayan Türler
Tür kimliğini dışa açmadan korumak için işlevlerden saydam olmayan türler döndürün.
some Anahtar Sözcüğüyle Saydam Olmayan Türler, CoddyKit'te ücretsiz bir Swift Academy dersidir. Bu, 4 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 4 dersten oluşur.
Opak Türlerin Çözdüğü Sorun
any ile bir protokol türü döndürmek tür bilgilerini kaybettirir. some ise uygulamayı gizlerken bu bilgileri korur.
protocol Shape { var area: Double { get } }
struct Circle: Shape { var area: Double { .pi * 4 } }Opak Protokol Döndürme
Dönüş türü olarak some Shape kullanmak, çağırana hangi tür olduğunu açıklamadan "Belirli bir Shape türü döndürüyorum" demenizi sağlar.
func makeShape() -> some Shape {
return Circle()
}
let s = makeShape()
print(s.area)Tür Kimliği Korunur
some türlerinin sabit bir temel türü olduğundan derleyici, Self gerektiren işlemlere izin verir.
func makeEquatableShape() -> some Shape & Equatable {
return Circle()
}
let a = makeEquatableShape()
let b = makeEquatableShape()
print(a == b) // works because types matchOpak ve Varoluşsal Türler
some opaktır (tek ve sabit bir tür), any ise varoluşsaldır (çalışma zamanında uyum sağlayan herhangi bir tür).
func withSome() -> some Shape { Circle() } // opaque
func withAny() -> any Shape { Circle() } // existentialSwiftUI Gövdesinde Opak Türler
SwiftUI, her görünümün gövdesinin yerleşim ayrıntılarını açığa çıkarmadan tek ve tutarlı bir tür döndürmesi için some View kullanır.
struct ContentView: View {
var body: some View {
Text("Hello, World!")
}
}some ile Opak Parametreler
Swift 5.7 ve sonraki sürümler, genel tür kısıtlamalarının söz dizimsel kısaltması olarak parametre konumlarında some Protocol kullanımına izin verir.
func printArea(_ shape: some Shape) {
print(shape.area)
}
printArea(Circle())Tersine Çevrilmiş Genel Türler
some P opak parametresi, ifadesine eşdeğerdir. Derleyici, T'yi çağrı noktasında çıkarır.
func doubled(_ value: some Numeric) -> some Numeric {
value * 2
}Opak Türlerde Kısıtlamalar
Protokolleri opak türlerle, genel türlerde olduğu gibi birleştirebilirsiniz.
func process(_ item: some Codable & Hashable) {
let hash = item.hashValue
print(hash)
}Farklı Türler Döndürme
Varoluşsal türlerin aksine, opak türlerle farklı dallardan farklı uyumlu türler döndüremezsiniz.
// This would NOT compile:
// func shape(_ big: Bool) -> some Shape {
// big ? Circle() : Square() // ERROR: different types
// }Protokollerde Opak Türler
İlişkili türler içeren protokollerin dönüş türü olarak kullanılması some ile kolaylaşır.
protocol Buildable { associatedtype Output; func build() -> Output }
func build(_ b: some Buildable) -> some Any {
b.build()
}some Ne Zaman Seçilmeli
Tek ve tutarlı bir tür döndürdüğünüzde ve tür kimliğini korumak istediğinizde some kullanmayı tercih edin. Farklı türleri içeren koleksiyonlara ihtiyacınız olduğunda any kullanın.
var shapes: [any Shape] = [Circle(), Circle()]
let single: some Shape = Circle()Kısa Kontrol
some anahtar sözcüğü, dönüş türü hakkında neyi garanti eder?
Ders Tekrarı
some, somut türü gizlerken tür kimliğini koruyan opak dönüş türleri oluşturur. SwiftUI'ın some View kullanımı bunun temel örneğidir. Tek tür döndüren yerlerde some, farklı türleri içeren koleksiyonlarda ise any kullanın.
Sıkça Sorulan Sorular
“some Anahtar Sözcüğüyle Saydam Olmayan Türler” dersi ücretsiz mi?
Evet — “some Anahtar Sözcüğüyle Saydam Olmayan Türler” 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.
“some Anahtar Sözcüğüyle Saydam Olmayan Türler” dersinde ne öğreneceğim?
Tür kimliğini dışa açmadan korumak için işlevlerden saydam olmayan türler döndürün. 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 2. dersidir.
“some Anahtar Sözcüğüyle Saydam Olmayan Türler” 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