0Pricing
Swift Academy · Ders

Koşullu Uygunluk

where koşullarını kullanarak genel türlerin protokollere koşullu olarak uymasını sağlayın.

Koşullu Uygunluk, 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.

Hoş Geldiniz

Koşullu uyumluluk, jenerik bir türün, yalnızca tür parametreleri belirli kısıtları karşıladığında bir protokole uyum sağlamasına olanak tanır. Bu, Swift'in ifade gücü yüksek tür sisteminin temel taşlarından biridir.

Temel Koşullu Uyumluluk

```swift extension Array: Equatable where Element: Equatable { // Array is Equatable only when Element is Equatable } let a = [1,2,3] let b = [1,2,3] print(a == b) // true — works because Int is Equatable ```

Özel Jenerik Tür

```swift struct Box { var value: T } extension Box: Equatable where T: Equatable { static func == (lhs: Box, rhs: Box) -> Bool { lhs.value == rhs.value } } print(Box(value: 42) == Box(value: 42)) // true ```

Koşullu Özetlenebilirlik

```swift extension Box: Hashable where T: Hashable { func hash(into hasher: inout Hasher) { hasher.combine(value) } } // Box is Hashable; Box is not ```

Koşullu Kodlanabilirlik

```swift extension Box: Codable where T: Codable {} let box = Box(value: "hello") let data = try JSONEncoder().encode(box) // works — String is Codable ```

Uzantılarda where Cümleleri

```swift extension Collection where Element == Int { var sum: Int { reduce(0, +) } } print([1,2,3,4].sum) // 10 // This extension only applies to collections of Int ```

Birden Çok Kısıtlama

```swift extension Dictionary where Key: Comparable, Value: Equatable { func sortedByKey() -> [(Key, Value)] { sorted { $0.key < $1.key } } } ```

Protokol Koşullu Uyumluluğu

```swift protocol Printable { func prettyPrint() } extension Optional: Printable where Wrapped: Printable { func prettyPrint() { switch self { case .none: print("nil") case .some(let v): v.prettyPrint() } } } ```

Koşullu Uyumluluğu Kullanma

```swift let opt: Int? = 42 // If Int conformed to Printable: // opt.prettyPrint() // "42" // Standard usage: let nums = Optional([1,2,3]) // [1,2,3]? if let arr = nums, arr == [1,2,3] { ... } // Equatable via conditional ```

Geriye Dönük Uyumluluk Uyarısı

Swift 5.7 ve sonraki sürümler, geriye dönük uyumluluklar konusunda uyarır (başka bir modüldeki türlere uyumluluk ekleme): ```swift extension String: SomeThirdPartyProtocol {} // ⚠️ retroactive ``` Bilerek yaptığınızda bunu `@retroactive` ile açıkça belirtin.

Hızlı Kontrol

Koşullu bir uyumluluk uzantısında koşul tanımlamak için hangi anahtar sözcük kullanılır?

Özet

Temel çıkarımlar: • `extension T: Protocol where Param: Constraint` — koşullu uyumluluk • Diziler, Optional, Result ve diğerleri bunu Equatable, Hashable ve Codable için kullanır • Özel genel türler de aynı yöntemi kullanabilir • `where Element == Int`, kısıtlamayı belirli somut türlerle sınırlar • Geriye dönük uyumluluklar, Swift 5.7 ve sonraki sürümlerde `@retroactive` gerektirir Sıradaki konu: Self gereksinimleri.

Sıkça Sorulan Sorular

“Koşullu Uygunluk” dersi ücretsiz mi?

Evet — “Koşullu Uygunluk” 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.

“Koşullu Uygunluk” dersinde ne öğreneceğim?

where koşullarını kullanarak genel türlerin protokollere koşullu olarak uymasını sağlayı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.

“Koşullu Uygunluk” 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

  1. & ile Protokol Birleştirme
  2. Koşullu Uygunluk
  3. Self Gereksinimleri ve Equatable Tasarımı
  4. Protokol Odaklı Tasarım İlkeleri
← Swift Academy Sayfasına Dön