0Pricing
Swift Academy · Ders

Koşullu uygunluklar

Genel bir türü, yalnızca tür parametresi kısıtlamaları karşılıyorsa protokole uygun hâle getirin (ör. Box<T>: Equatable where T: Equatable ).

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

Koşullu uyumluluk neden kullanılır?

Koşullu uyumluluk, tür parametreleri kısıtları karşıladığında bir protokol uyumluluğu ekler. Bu, API'leri kesin tutar, gereksiz tekrarları önler ve standart kitaplıkla güçlü bir şekilde birleştirilebilir.

Genel tür temeli

Genel bir türle başlayın. Ek bir işlem yapılmadığında, T bunu sağlasa bile Box, Equatable/Hashable uyumluluğuna sahip değildir.

struct Box<T> {
    var value: T
}
let bi = Box(value: 3)
let bs = Box(value: "hi")
// At this point Box has no Equatable/Hashable, regardless of T.

Koşullu Equatable

T: Equatable olduğunda yalnızca Equatable ekleyin. Equatable olmayan türlerin kutularını karşılaştıran kod derlenmez (bu iyi bir güvenliktir).

extension Box: Equatable where T: Equatable {
    static func == (lhs: Box<T>, rhs: Box<T>) -> Bool {
        lhs.value == rhs.value
    }
}
print(Box(value: 5) == Box(value: 5))   // true
// Works because Int is Equatable
// print(Box(value: someNonEquatable) == ...) // won't compile

Koşullu Hashable

Benzer şekilde, Hashable uyumluluğunu yalnızca öğe Hashable olduğunda ekleyin. Böylece Set/Dictionary, Box<T> ile çalışır.

extension Box: Hashable where T: Hashable {
    func hash(into hasher: inout Hasher) {
        hasher.combine(value)
    }
}
let set: Set<Box<Int>> = [Box(value: 1), Box(value: 1)]
print(set.count)  // 1 because Hashable is available only when T: Hashable

where ile özellik kısıtlaması

Temel API'yi küçük tutarak yöntemleri yalnızca belirli yetenekler için sunmak amacıyla extension ... where kullanın (ör. T: Numeric).

// Add extra APIs only when T supports them
extension Box where T: Numeric {
    func doubled() -> T { value + value }
}
print(Box(value: 7).doubled())     // 14 (Int is Numeric)
// Box(value: "hi").doubled()      // won't compile — String not Numeric

Standart kitaplıkta kullanım

Bunu her gün zaten kullanıyorsunuz:

  • Array: Equatable, yalnızca Element: Equatable olduğunda kullanılabilir.
  • Dictionary/Set özetleme işlemi yalnızca anahtarlar/öğeler Hashable olduğunda kullanılabilir.
  • Optional eşitliği yalnızca Wrapped: Equatable olduğunda kullanılabilir.

Yarar: API'ler doğrudur ve derleme zamanında güvenlidir.

Tanım kontrolü

Hızlı kontrol: Koşullu uyumluluk neye izin verir?

Özet

Özet: Kısıtlar sağlandığında uyumluluklar ve API'ler eklemek için extension Type: Protocol where ... kullanın. Bu, kodu kesin, güvenli ve anlaşılması kolay tutar.

Sıkça Sorulan Sorular

“Koşullu uygunluklar” dersi ücretsiz mi?

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

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

Genel bir türü, yalnızca tür parametresi kısıtlamaları karşılıyorsa protokole uygun hâle getirin (ör. Box<T>: Equatable where T: Equatable ). 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.

“Koşullu uygunluklar” 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. Koşullu uygunluklar
  2. Özyinelemeli kısıtlamalar ve üst düzey geneller
  3. Uzantılarda where koşulları
← Swift Academy Sayfasına Dön